メソッドでブロック引数を取り、内容(シンボルの配列)を変換して配列にしようとしています。例えば:
def sequence(&block)
# ?
end
sequence do
:foo,
:bar,
:foobar
end # => [:foo, :bar, :foobar]
メソッドの引数として配列を使用する方が簡単なことはわかっていますが、sequence
別のメソッドとの一貫性を維持しようとしています。
その構文はRubyでは許可されていないため、残念ながら、コードがパーサーを通過することすらできないため、これは不可能です。
わかりました、正確な質問に答えていません、そして私はあなたとダークがこれを知っていると想像します、しかし...
誰かがArray
パラメータとしてを望んでいて、彼らの検索が彼らをここに導いた場合、Rubyにはあなたのために似たようなことをする基本的な機能があります:
def f *x
x
end
p f :foo,
:bar,
:foobar
# => [:foo, :bar, :foobar]
提案した構文はパーサーを通過しませんが、いくつかの調整があります。
def sequence(&block)
yield
end
sequence do [
:foo,
:bar,
:foobar
] end # => [:foo, :bar, :foobar]
sequence do _=
:foo,
:bar,
:foobar
end # => [:foo, :bar, :foobar]