- 第一种指代this
class A(name:String){ self=> def printName()={ print(self.name) } }
- 第二种指代this,但是申明类型
此时 self不单指代this,而且表示此类的实例依赖于申明的类型
简单来说就是变相继承了B的意思
像上面这种形式,我们如果要实例化A。trail B { printB() } class A(name:String){ self: B => def printName()={ print(self.name) } }
则需要new A("A") with B
并且因为A类没有实现printB
的方法,
所以上面的方式还会报错,需要如下申明:
如果A类本身实现了new A("A") with B{ printB()=print("B") }
printB
则B不需要具体实现
Scala 语法——self =>
最新推荐文章于 2024-04-26 18:38:06 发布