Ruby Get Array من الكائنات التي تم إرجاعها في كتلة
سؤال
في روبي ، في مناسبات معينة (Ruby/Gosu/Texplay) رأيت رمزًا مثل ما يلي:
image.paint {
circle 20, 20
pixel 10, 10
}
هل سيكون من الممكن بالنسبة لي أن أكتب وظيفة مماثلة يمكن استخدامها مثل ذلك؟:
my_function {
"one"
"two"
"three"
}
من شأنه أن يعود ومصفوفة: ["واحد" ، "اثنان" ، "ثلاثة"
ملاحظة: هذه الوظيفة ليست فقط لتوليد المصفوفات ولا أتساءل عن طرق للقيام بذلك ، كل ما أحتاج إلى معرفته هو بناء الجملة. شكرا مقدما ، ELL.
المحلول
TexPlay
تبدو لطيفة ، كيف تجده؟ قون
لا أستطيع التفكير في طريقة لفعل ما تريد ، آسف. ولكن إذا بادت كل سلسلة مع _
أنه سهل:
function {
_"one"
_"two"
_"three"
}
#=> ["one", "two", "three"]
أين:
def function(&block)
Object.new.tap do |s|
s.instance_eval do
def _(var)
@val ||= []
@val << var
end
end
s.instance_eval(&block)
end.instance_variable_get(:@val)
end
لا تنتمي إلى StackOverflow