ruby - Why do method arguments not work for assignment? -
in ruby, many languages, method's arguments not automatically assigned instance variables.
this works:
def initialize(a) @a = end
this doesn't:
def initialize(@a) end
in coffeescript, example, works:
constructor: (@name) ->
there lot of other syntactic sugar in ruby, such ||=
operator, unary &
on symbols, etc. there reason, technical or otherwise, why sugar isn't part of design?
edit
the scope of question not limited initialize
.
in coffeescript can do
class foo baz: (@bar) ->
the reason matz decided way, @ least now. there's open feature request quite few supporters trying convince matz.
note should consider inheriting struct.new(:name, ...)
define default constructor setting corresponding instance variables, accessors, ==
, eql?
, hash
, etc...
Comments
Post a Comment