我有這個簡單的問題,但我找不到正確的答案。 我想知道我怎麼會做這樣的事情:紅寶石「 - 」到 - 或「+」到+
direction="-"
value=17
movement = direction value
,這樣它會給我:運動= -17 我知道,如果我聲明可以使用一個,但我wordering如果有一個更快方式轉換 「 - 」 簡單 -
我有這個簡單的問題,但我找不到正確的答案。 我想知道我怎麼會做這樣的事情:紅寶石「 - 」到 - 或「+」到+
direction="-"
value=17
movement = direction value
,這樣它會給我:運動= -17 我知道,如果我聲明可以使用一個,但我wordering如果有一個更快方式轉換 「 - 」 簡單 -
一個解決方案,從我身邊
direction = "-"
value = 17
movement = (direction + value.to_s).to_i
這是非常基本的,沒有使用任何複雜的東西,這可能會使它有點不清潔,但至少證明只要瞭解ruby中的基本操作就可以解決許多任務。
只需設置方向爲-1或+1,所以你可以用這個值乘以:
direction = -1
value = 17
movement = direction * value
結果將是-17。
如果將方向設置爲1,則結果將爲17.因此,可以使用兩個方向,具體取決於方向值。
可以使用send
movement = 0.send(direction.to_sym, value)
一元運算符在內部使用的後@
,所以:
direction = "-"
value = 17
movement = value.send(direction + "@")
#=> -17
這就是說,IMO這是不必要的旋繞並(使用?
)將一個簡單的條件表達式會更好。
我可能會使用'value.send(「#{direction} @」)。 –
'方向'必須是一個字符串嗎?你可以使用'-1'並將其與'value'相乘。 – waldrumpus
directio的可能值是什麼?永遠是一元嗎? – tokland
我認爲讓'direction'爲+1或-1更有意義,這樣您可以像@waldrumpus指出的那樣將它與值相乘。 –