|
|
1
2
Mu指出,如果将多个散列作为非文本(即变量)传入,则可以传递多个不带括号的散列。 但除此之外,对于字面哈希,
关键字参数是当方法的参数包含冒号时,例如。
当一个调用没有括号时,只能传递一个哈希值,而该哈希值必须是最后一个参数。你可以跳过它周围的{}。 注意-我不是专家,但是关于关键字参数是否是散列类型的相关问题,据我所知,在编写Ruby3之前,它们是,但是有一个建议是Ruby3有一个不同于散列的“真实”关键字参数 https://bugs.ruby-lang.org/issues/14183 关键字参数不能是多值的。
此外,哈希可以自动转换为关键字参数。(例如,如果一个方法是用一个关键字参数来定义的,那么您可以在。
我将添加一个关于块和括号的点,因为用{}完成的块看起来有点像散列,尽管它不是散列。块对是否需要括号有一定的影响。
即使在其他参数之后传递块,块之前也不应该有逗号,如果用{}完成的块跟在一些参数之后,则需要括号,但是如果用{}完成的块
建议在有多个参数时使用括号,除非是DSL(领域特定语言)。 Do you leave parentheses in or out in Ruby? |