1

メソッドでブロック引数を取り、内容(シンボルの配列)を変換して配列にしようとしています。例えば:

def sequence(&block)
  # ?
end

sequence do
  :foo,
  :bar,
  :foobar
end # => [:foo, :bar, :foobar]

メソッドの引数として配列を使用する方が簡単なことはわかっていますが、sequence別のメソッドとの一貫性を維持しようとしています。

4

3 に答える 3

3

その構文はRubyでは許可されていないため、残念ながら、コードがパーサーを通過することすらできないため、これは不可能です。

于 2013-03-03T03:21:38.113 に答える
0

わかりました、正確な質問に答えていません、そして私はあなたとダークがこれを知っていると想像します、しかし...

誰かがArrayパラメータとしてを望んでいて、彼らの検索が彼らをここに導いた場合、Rubyにはあなたのために似たようなことをする基本的な機能があります:

def f *x
  x
end

p f :foo,
    :bar,
    :foobar 

# => [:foo, :bar, :foobar]
于 2013-03-03T04:33:53.357 に答える
0

提案した構文はパーサーを通過しませんが、いくつかの調整があります。

def sequence(&block)
  yield
end

sequence do [
  :foo,
  :bar,
  :foobar
] end # => [:foo, :bar, :foobar]

sequence do _= 
  :foo,
  :bar,
  :foobar
end # => [:foo, :bar, :foobar]
于 2013-03-03T05:45:26.627 に答える