相关疑难解决方法(0)

自我类型和特质子类有什么区别?

特质的自我类型A:

trait B
trait A { this: B => }
Run Code Online (Sandbox Code Playgroud)

" A不能混合成一个不会扩展的具体类B".

另一方面,以下内容:

trait B
trait A extends B
Run Code Online (Sandbox Code Playgroud)

"混合的任何(混凝土或抽象)类A也将在B中混合".

这两个陈述不是同一个意思吗?自我类型似乎只是为了创建一个简单的编译时错误的可能性.

我错过了什么?

scala traits self-type

377
推荐指数
8
解决办法
6万
查看次数

来自foreach的短路功能

我和我的同事对以下代码的行为感到有点困惑.

def a: String = {
  None.foreach(return "1")
  return "2"
}

def b: String = {
  None.foreach(x => return "1")
  return "2"
}
Run Code Online (Sandbox Code Playgroud)

正如所料,调用b确实返回"2".但是,调用a返回"1".何时执行return "1"时正在评估a

functional-programming scala

9
推荐指数
1
解决办法
489
查看次数

标签 统计

scala ×2

functional-programming ×1

self-type ×1

traits ×1