使用HackerRank刷了我的能力,看到這段代碼:即使它們沒有被使用,你是否應該傳入塊變量?
> h = {1 => 1, 2 => 4, 3 => 9, 4 => 16, 5 => 25}
=> {1 => 1, 2 => 4, 3 => 9, 4 => 16, 5 => 25}
> h.keep_if {|key, value| key % 2 == 0}
我看到的是,即使沒有使用value
塊變量,它仍然在過去,我知道,它的作品無論是方式(帶或不帶value
),但是傳遞你不打算使用的變量是否更正確?或者傳遞即使不被使用的變量也應該被傳入,因爲它被認爲是更好的「形式」。
也許值得注意的是'_'和'_a'是有效的局部變量。例如,可以編寫'[1,2,3] .map {| _ | 2 * _}#=> [2,4,6]'。名稱以下劃線開頭的塊變量在一個方面是特殊的,但是:[[1,2,3],[3,4,5]]。map {| _y,x,_y | x}#=> [2,4]',而'[[1,2,3],[3,4,5]] map {| y,x,y | x}#=> SyntaxError:(irb):569:重複的參數名稱。 –