我已经阅读了多个样式指南和其他资源,说明在方法/变量/其他名称中使用下划线是个坏主意.
这背后的技术原因是什么?
我非常习惯于用_前置辅助函数.还有一些我应该公开的私有函数,所以我可以通过REPL访问它们.其他命名约定,比如使用"helper"后缀似乎很麻烦.
任何想法将不胜感激!
Rex*_*err 14
通配符运算符_在Scala中大量使用.所以:
xs map (_.x) // Call the x method of every element
xs map (_x) // Pass every element through the _x method
Run Code Online (Sandbox Code Playgroud)
令人困惑.你必须非常仔细地看看是否有下划线.
但是,内部下划线更难以混淆:
xs map (my_method) // No similar form where _ stands for the list element
Run Code Online (Sandbox Code Playgroud)
因此这些问题较少,但当人们正在寻找封闭时,下划线仍然会引起人们的注意.这可能是他们气馁的原因,但说实话,我一直都在使用它们,特别是在隐式defs和内部变量之类的东西中,它们在接口中没有太多或任何暴露.
我只知道我避免使用名称中的下划线的原因:它们是Scala语法的一个重要部分,它出现在各处.当然,你可以把它们放在名字中,但是根据我的经验,它往往会减慢人类解析器的速度.
但我必须承认,我偶尔会在可变对象中使用下划线前缀作为私有变量,如果我想要公开方法的非下划线名称.如果我们可以使用像Haskell这样的素数(foo')会很好,但我认为这在词法上很难.
| 归档时间: |
|
| 查看次数: |
3270 次 |
| 最近记录: |