-1

为什么我不能只设置var = Class?为什么它必须是var = Class.new?您可以使用var = [], {},或设置数组、哈希、字符串中的变量"some_string"。Class 是否正在做一些使其与众不同的特定事情?

class Word
    def palindrome(string)
        string == string.reverse
    end
end

w = Word.new

puts w.palindrome("racecar")
4

1 回答 1

2

实际上,你已经把特殊情况倒过来了:

  • []是简写Array.new
  • {}是简写Hash.new
  • ""String.new( 的简写,因为没有语法结构(例如 , 或 ) 就无法"指定'字符串%

可以这样做var = Klass,但是分配varKlass, 而Klass.new调用new对象上的方法Klass(就像任何其他方法调用一样,没有什么特别的),它返回类的新实例Klass

注意:我已将Class您的问题替换为Klass(defined via class Klass; end) 以减少混淆,因为谈论ClassClass实例会引入很多元性,我认为您在这里并不关心,而您只是想Class代表任何课程。

于 2013-02-15T04:29:18.027 回答