![]() |
1
129
通常,您会将包对象放在一个单独的文件中,称为
包对象的主要用例是当您需要在包内的不同位置进行定义时,以及当您使用包定义的API时在包外进行定义时。举个例子:
现在,包对象中的定义在整个包中都可用
通过这种方式,您可以防止要求API客户机发布额外的导入来有效地使用库—例如,在scala swing中,您需要编写
拥有所有的善良
|
![]() |
2
58
虽然Moritz的答案是正确的,但还有一点需要注意,包对象就是对象。除此之外,这意味着您可以使用mix-in-inheritance从特性构建它们。莫里茨的例子可以写成
这里的版本控制是一个抽象特性,即包对象必须有一个“version”方法,而jodaalias和javaalias是包含方便类型别名的具体特性。所有这些特性都可以被许多不同的包对象重用。 |
![]() |
3
7
|
![]() |
4
6
不是这样的 斯卡拉3 ,计划于2020年中期发布, based on Dotty ,作为 in here :
|