![](/img/trans.png)
[英]ActiveModel::Serializers::JSON - How to map an array of JSON from a returned string to an collection of Ruby objects
[英]Ruby Get Array From Objects Returned in a Block
在Ruby中,在某些情況下(ruby / gosu / texplay),我看到了類似以下代碼的代碼:
image.paint {
circle 20, 20
pixel 10, 10
}
我是否可以編寫一個可以像這樣使用的類似函數?
my_function {
"one"
"two"
"three"
}
將返回並排列的數組:[“一個”,“兩個”,“三個”]
ps該函數不僅用於生成數組,而且我不懷疑這樣做的方法,我只需要了解語法。 預先感謝,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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.