2

Ruby では、多くの言語と同様に、メソッドの引数はインスタンス変数として自動的に割り当てられません。

これは機能します:

def initialize(a)
  @a = a
end

これはしません:

def initialize(@a)
end

たとえば、CoffeeScript では次のように動作します。

constructor: (@name) ->

||=Ruby には、演算子、シンボルの単項など、他にも多くの構文糖が&あります。技術的またはその他の理由で、この糖を設計の一部にしない理由はありますか?

編集

質問の範囲は に限定されませんinitialize

CoffeeScriptでは、次のこともできます

class Foo
  baz: (@bar) ->
4

4 に答える 4

0

あなたが何を求めているのかわからない。Ruby 2 より前の Ruby には名前付き引数がなかったため、説明していることを行うには、名前と値の両方を渡す必要がありました。ただし、その場合は、次のように、解析が簡単なハッシュを渡すこともできます

于 2013-04-18T01:30:48.207 に答える