![](/img/trans.png)
[英]Is there a way to do multi-line input in ruby AND single-line input at the same time (conditional user input)?
[英]How to write single-line from multi-line blocks in ruby?
我正在嘗試為數組(@controller)中的每個實體編寫單行塊,並且該單個塊的目的是從控制器數組中產生[n]元素,n是訪問器,現在我想到了類似的東西:
def for_controller
controller = @controllers.first[n]
yield controller
end
不幸的是,我編寫的單個代碼塊不起作用,但是下面的多行代碼塊在循環中運行良好。
def for_all_controllers
@controllers.each do |controller|
yield controller
end
end
為了使問題更清楚:
@controllers[0] should yield => something_1
@controllers[1] should yield => something_2
@controllers[n] should yield => something_(n+1)
我該如何工作?
是您要找的東西嗎?
def for_controller
yield @controllers[n]
end
您的示例代碼看起來像是錯誤的。
@controllers.first[n]
這從Array中獲取第n個元素,該元素由@controller.first
返回。
但在您的問題中,您說:
從控制器數組產生[n]元素
我認為您期望的是數據結構(a),而不是(b)。
(a)
@controllers = [
'something', # <= @controller.first returns this element, as you expected
'something',
'something'
]
(b)
@controller = [
['something', 'something', 'something'],
['something', 'something', 'something'],
['something', 'something', 'something']
]
我認為您應該嘗試以下方法:
@controllers.first(n)
它從@controller返回前n個元素。 是您期望的結果,對嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.