1
我有一個散列:symbols => values
,其值將是一個fixnum或布爾值。我必須運行一個循環,調用每個(&:符號)以在主要參數上調用。如何設置一個proc只爲了在Ruby中創建一個條件才能運行?
默認哈希我工作是:
default_options = {
:times => 1,
:upcase => false,
:reverse => false,
}
而且我用給他們打電話循環,假設我已經通過了一個選項哈希通過方法來改變默認設置之一,合併它們。
hash.each do |key,val|
unless hash[key] == default_options[key]
result = key.to_proc.call(string)
end
end
所以基本上,如果我通過一個選項散列,改變了默認值,它應該運行每個過程。如果我通過:times => 5
,它應該打印字符串5次,如果我把:upcase => true
等打印在選項散列中,它應該打印出來。那麼如何以符號形式寫出proc來接收參數,或者使布爾證明成立呢?
恐怕我不明白你最後一句話的任何一部分。另外,在你的第二個代碼塊中,'string'和'val'應該是相同的嗎? –
我不確定你會在這裏生成什麼代碼,因爲'times'和'upcase'不能正確鏈接。 – tadman
它看起來像你正在試圖在塊中做太多事情。我會稍微打破目標,長時間做每一步,然後在看到機會時重新考慮它。但不要試圖預先優化解決方案。例如1.合併默認值,2.在字符串上運行合併選項。 – james2m