2017-09-26 22 views

回答

4

這是dig是什麼:

id = job.args.dig(0, 'arguments', 0) 

定義Array,Hash和Struct,因此它可以處理大多數嵌套結構。

4

如果我們只能看到它的一行,很難就如何更好地組織代碼給出建議!處理這樣一個雜亂的對象表明你可能有更廣泛的設計問題,可以提高代碼質量。然而...

基於上述的「高興場景」是,如果:

job.args == [{"arguments"=>["foo"]}] 

即其第一元件與鍵'arguments'散列,它映射到非空數組的數組。這看起來很凌亂!

job.args.dig(0, 'arguments', 0) 

這將Array#dig

但是,您可以簡化這(注意:這裏還有Hash#dig),以鏈的方法調用,並與nil如果任何失敗優雅地迴應。

這個答案假定您使用紅寶石版本> = 2.3.0,因爲這是當加入的語言。如果您運行的是舊版本,則還可以使用this gem來支持該功能。

相關問題