在紅寶石(on Rails的,實際上),我有try
功能:從Ruby到Python - 有沒有相當於「try」的東西?
[].try(:[], 1) # => nil
[10].try(:[], 1) # => nil
[10, 20].try(:[], 1) # => 20
[10, 20, 30].try(:[], 1) # => 20
{}.try(:foo) # => nil
{ foo: 'bar' }.try(:foo) # => 'bar'
的功能基本上是快捷方式,以避免if
s到檢查位置是否存在。
Python中是否有類似的東西?
看起來你有點誤解了'嘗試'在Rails中的用途。在Ruby中對無效索引進行數組查找會返回'nil'而不是引發異常,因此不需要'try' [10] [1]#=> nil'。嘗試進入以避免在「無」結果時調用方法的錯誤,例如'[10] [1] + 3#=> NoMethodError:未定義的方法'+'爲nil:NilClass'但是[10] [1] .try(:+,3)#=> nil'(沒有例外) – mikej
如果你的問題得到解答,你可以[接受最有用的](https://stackoverflow.com/help/someone-answers)。 –