2013-02-07 155 views

回答

0
((0..10).to_a - [6]).each do |i| 
    ... 
end 
0

您可以使用reject方法來完成它。

我不知道它是一種更清潔的方式,但它只是另一種方式。

(0..10).reject { |v| v == 6 }.each do |i| 

給我一個鏡頭,告訴我你對它有什麼看法。 :)

0

不知道是它的清潔劑或爲您簡單的情況下首選方式,但你可以做更復雜的情況是這樣

(0..10).select{|i| i!=6}.each do 
    # YOUR CODE 
end 

這絕對是一種

附:在寫答案,與答案拒絕一個到達:)這幾乎是相同的一個,我只是忘了拒絕,只記得選擇:)

0

您可以使用next如果你只是想避開將您的代碼包裝在unless區塊中。例如,如果你想跳過一組數字,你可以做喜歡的事:

skip_values = [3, 6, 7] 
(0..10).each do |i| 
    # When i is 3, 6, or 7, continue to the next iteration 
    next if skip_values.include?(i) 
    ... 
end 
0

我想你可以定義一個子類或補丁範圍本身的東西,如...

def reach not_this_one 
    each do |x| 
     yield x unless x == not_this_one 
    end 
    end 

...或者...

def reach not_this_one, &block 
    self.select { |x| x != not_this_one }.each &block 
    end 
相關問題