【发布时间】:2013-04-10 23:28:49
【问题描述】:
在 Ruby 中,与许多语言一样,方法的参数不会自动分配为实例变量。
这行得通:
def initialize(a)
@a = a
end
这不是:
def initialize(@a)
end
例如,在 CoffeeScript 中,这是可行的:
constructor: (@name) ->
Ruby 中还有很多其他语法糖,例如 ||= 运算符、符号上的一元 & 等。有什么原因,技术或其他原因,为什么这个糖不是设计?
编辑
问题范围不限于initialize。
在 CoffeeScript 中你也可以这样做
class Foo
baz: (@bar) ->
【问题讨论】:
-
Ruby 没有构造函数。你能澄清你的问题吗?
-
阅读:初始化方法
-
initialize是一种方法,就像其他所有方法一样。它的工作原理与其他所有方法完全相同。让一种方法的行为与其他所有方法不同会非常令人困惑。 -
@JörgWMittag 编辑扩大到
initialize以外的方法
标签: ruby