我有这样的Python代码:
# some_dic is a dictionary
value = some_dic.get(var_name, None)
我怎么能在Crystal中做同样的事情?
Python中称为dictionary的映射类型在Crystal中称为Hash。
具有明确回退值的值可以使用Hash#fetch
方法检索:
numbers = {"Alice" => "0123", "Bob" => "0124"}
puts numbers.fetch("Charlie", "0000")
所以在你的情况下
value = some_dic.fetch(var_name, nil)
如果您的默认值应该是nil
,那么有一个方便的Hash#[]?
方法:
puts numbers["Charlie"]?
阅读语言简介中有关哈希的更多信息:https://crystal-lang.org/reference/1.3/syntax_and_semantics/literals/hash.html