Ruby 为什么我必须声明var=Class.new?
为什么我不能只设置Ruby 为什么我必须声明var=Class.new?,ruby,Ruby,为什么我不能只设置var=Class?为什么它必须是var=Class.new?你可以在数组、散列、字符串中设置变量,只要var=[]、{}、或一些字符串“。班级是否做了一些特殊的事情,使其与众不同 class Word def palindrome(string) string == string.reverse end end w = Word.new puts w.palindrome("racecar") 实际上,你已经把特例倒过来了: []是数组
var=Class?
为什么它必须是var=Class.new?
你可以在数组、散列、字符串中设置变量,只要var=[]、{}、
或一些字符串“
。班级是否做了一些特殊的事情,使其与众不同
class Word
def palindrome(string)
string == string.reverse
end
end
w = Word.new
puts w.palindrome("racecar")
实际上,你已经把特例倒过来了:
是[]
数组的缩写。新的
是{}
散列的缩写。new
是“
字符串的简写形式。新的
(有点像,因为没有语法结构无法指定字符串(例如
、”
或“
)%
var=Klass
,但这会将var
分配给Klass
,而Klass.new
调用对象Klass
上的new
方法(就像任何其他方法调用一样,没有任何特殊之处),该方法返回类Klass
的新实例
注意:我已将您问题中的
Class
替换为Klass
(通过Class-Klass定义;end
)为了减少混淆,在谈论Class
和Class
实例时引入了许多元性,我认为您在这里并不关心这些元性,您只是想Class
表示任何类。我认为w=Word
只是将w
设置为对类的引用,而不是实例类的初始化/实例化?我的代码的问题是,如果我删除.new,则会出现一个错误,表示Word未定义。这对我来说没有意义,因为所有大写的变量都只能是类变量。@h00d13z:类变量以双精度符号开头(@
),不带大写字母。以大写字母开头的变量是常量,而不是类变量。