Ela*_*ich 2 coding-style scala
在scala中,可以在函数中定义局部块.例如,本地块评估最后的语句
val x = {val x =1;x+1}
Run Code Online (Sandbox Code Playgroud)
这里x==2,内部val x是该块的本地.
但是,在编写匿名类时,这些本地块可能会导致漏洞.例如(来自scala的参考)
new Iterator[Int]
{...} // new anonymous class inheriting from Iterator[Int]
new Iterator[Int]
{...} //new Iterator[Int] followed by a "dangling" local block
Run Code Online (Sandbox Code Playgroud)
两种情况之间的差异令人沮丧.有时,如果不是那些两段代码可以编译,例如Iterator[Int],Range(0,1,1)被使用.
我想到了它,并且找不到需要"悬空"本地块(即,其值不使用的本地块)(或使代码更优雅)的情况.
是否存在我们需要本地块而不使用其值(并且不将其放在不同的函数中并调用此函数)的情况?我会很高兴举个例子.
如果没有,我认为每当scalac遇到"悬空"本地区块时发出警告(甚至禁止altogther)会很好.我错过了什么吗?
为什么不写
new Iterator[Int] {
...
}
Run Code Online (Sandbox Code Playgroud)
编辑:这是Scala中编程使用的样式(参见pdf示例章节)
new RationalTrait {
val numerArg = 1 * x
val denomArg = 2 * x
}
Run Code Online (Sandbox Code Playgroud)
和Java编码约定.
打开括号"{"出现在与声明语句相同的行的末尾
| 归档时间: |
|
| 查看次数: |
443 次 |
| 最近记录: |