【发布时间】:2011-11-19 10:01:18
【问题描述】:
假设我有func_a 和func_b,它们都接受一个参数,我想将func_b 的结果传递给func_a。
用括号括起来的最常用方法是什么?
func_a func_b inputfunc_a func_b(input)func_a(func_b input)func_a(func_b(input))
【问题讨论】:
标签: ruby coding-style parentheses
假设我有func_a 和func_b,它们都接受一个参数,我想将func_b 的结果传递给func_a。
用括号括起来的最常用方法是什么?
func_a func_b inputfunc_a func_b(input)func_a(func_b input)func_a(func_b(input))【问题讨论】:
标签: ruby coding-style parentheses
我不能给你最常见的方式,但我个人的看法。
我会拒绝第一版func_a func_b input。太混乱了,你没看input是func_b的参数,还是func_a的第二个参数。
我更喜欢第 4 版,它显示了明确的参数是什么(你看,什么是方法名,什么是变量)。 但我会在括号前后添加空格:
func_a( func_b( input ))
或
func_a( func_b(input) )
【讨论】:
func_a func_b input 令人困惑,但从技术上讲,它实际上并不模棱两可。由于 Ruby 没有柯里化,input 绝对不是func_a 的第二个参数(应该是func_a func_b, input)。然而,对线条的全部理解取决于是否存在一个小字符(逗号),这似乎是一种不好的做法。
您必须扫描来源才能找到“最常见的”。
我尝试写出在这种情况下有意义的东西,但几乎总是使用以下任何一种:
func_a func_b(arg)
func_a(func_b(arg))
如果函数被命名为“听起来像”一个句子或短语的东西,那么我会尽可能多地去掉括号。
func_a func_b arg
换句话说,如果它听起来像是我要大声说的话,我会像我说的那样写——一个句子或短语。
如果它听起来不像我在现实生活中所说的话,需要括号来提高清晰度等。然后我会像在写代码一样写它,因为它听起来/看起来像代码。
【讨论】: