Ruby,在交互式Ruby中运行时出错
我是ruby新手,当我在中运行它时,一切都很好,我得到了想要的输出,但是当我在InteractiveRuby中运行它时,我在屏幕截图中得到了错误Ruby,在交互式Ruby中运行时出错,ruby,irb,Ruby,Irb,我是ruby新手,当我在中运行它时,一切都很好,我得到了想要的输出,但是当我在InteractiveRuby中运行它时,我在屏幕截图中得到了错误 # MyVector Class class MyVector include Enumerable def initialize (a) if !(a.instance_of? Array) raise "ARGUMENT OF INITIALIZER MUST BE AN ARRAY" else @
# MyVector Class
class MyVector
include Enumerable
def initialize (a)
if !(a.instance_of? Array)
raise "ARGUMENT OF INITIALIZER MUST BE AN ARRAY"
else
@array = a
end
end
def toArray
@temp = Array.new(@array.length())
i=0
while(i<@array.length())
@temp[i] = @array[i]
i+=1
end
@temp
end
def to_s
@array.to_s
end
def length
@array.length()
end
def [](i)
@array[i]
end
def each2(a)
raise Error, "INTEGER IS NOT LIKE VECTOR" if a.kind_of?(Integer)
Vector.Raise Error if length != a.length
return to_enum(:each2, a) unless block_given?
length.times do |i|
yield @array[i], a[i]
end
self
end
def * (a)
if a.kind_of? MyVector
Vector.Raise Error if length != a.length
p = 0
each2(a) {|a1, a2|p += a1 * a2}
p
elsif a.kind_of? MyMatrix
@temp = Array.new(a.transpose().length())
i=0
while(i<@temp.length())
@temp[i] = (a.transpose()[i] * self)
i+=1
end
MyVector.new(@temp)
end
end
end
# MyMatrix Class
class MyMatrix
include Enumerable
def initialize a
@array=Array.new(a.length())
i=0
while(i<a.length)
@array[i]=MyVector.new(a[i])
i+=1
end
end
def to_s
"["+@array.map { |i| "'" + i.to_s + "'" }.join(",")+"]"
end
def length
@array.length()
end
def [](i)
@array[i]
end
def transpose
@temp = Array.new(@array.length())
i=0
while(i<@array.length())
@temp[i] = @array[i].toArray()
i+=1;
end
MyMatrix.new(@temp.transpose())
end
def *m
if m.kind_of? MyMatrix
@temp=Array.new(@array.length())
i=0
while (i<@array.length())
@temp[i] = (@array[i] * m).toArray()
i+=1
end
MyMatrix.new(@temp)
end
end
end
#MyVector类
类MyVector
包括可枚举的
def初始化(a)
如果!(a.数组的实例_)
raise“初始值设定项的参数必须是数组”
其他的
@数组=a
结束
结束
def托雷
@temp=Array.new(@Array.length())
i=0
(i您正在运行的那些命令(cdd:\
和ruby hwk7.rb
)应该从终端运行,而不是从irb内部运行。退出irb并再次尝试运行它们。请澄清,如何在windows中从终端运行?嗯,我不使用windows,但我相信它在那里被称为命令提示符。如果您从“开始”菜单运行命令cmd
,我想它会给您一个命令提示符。