自我参考箭头后我能写什么?

时间:2016-10-09 20:14:07

标签: scala traits self-reference

我理解自我类型的结果是什么,如

$scope.data.namesList = NamesModel.getAll();

来自http://www.markthomas.info/blog/92

据我所知,“从这个特征实例化的对象也是NamesModel.subscribe('NamesModelChanged', function() { console.log('OK, I will update my data'); // not getting the updated list $scope.data.namesList = NamesModel.getAll(); }); 类型”。是吗?

我的问题:trait SpellChecker { self: RandomAccessSeq[char] => ... } 之后我能写些什么?它是什么意思?我注意到在RandomAccessSeq[char]之后写=>时没有出现编译错误。

2 个答案:

答案 0 :(得分:3)

  

我的问题:我可以在=>

之后写些什么

任何。

  

这是什么意思?

它表示自我类型注释的结束。在那之后是正常的特质体,就好像自我类型的注释甚至不存在一样。

答案 1 :(得分:1)

trait A { ta: B =>
  // code
}

在此示例中,tathis别名。它可以作为A.this的简写,因为当您需要从其他地方引用此代码时。

因为ta(即此代码)属于B类型,所有B的方法和成员数据都在范围内且可以免费使用。这成为编译器将强制执行的契约:因为A代码可以引用B代码,A无法在没有B的情况下实例化。{/ p>