什么是Scala 2.8中的嵌套/不需要的包?
发布时间:2020-12-16 09:43:03 所属栏目:安全 来源:网络整理
导读:在Scala 2.7中,我可以写: package com.acme.barclass Bar 。 package com.acme.fooclass Foo { new bar.Bar} 这不会在Scala 2.8中编译 – 但是这样做: package com.acme package barclass Bar 。 package com.acmepackage fooclass Foo { new bar.Bar} 这
在Scala 2.7中,我可以写:
package com.acme.bar class Bar 。 package com.acme.foo class Foo { new bar.Bar } 这不会在Scala 2.8中编译 – 但是这样做: package com.acme package bar class Bar 。 package com.acme package foo class Foo { new bar.Bar } >这是什么动机? 解决方法
关于这个邮件列表有几个长时间的讨论。
见 this thread for the problem和 this thread for the solution。 至于意思,只有 package A package B 窗体将打开A的范围,这使得A的成员没有前缀可见。如果您的项目由几个指向彼此的子包组成,您通常会使用此表单。另一方面,您将使用该表单 package A.B.C 如果要将C集成到包层次结构中,并且不打算直接访问A或B的其他成员。典型的情况是 package net.myorg.myproject 在这里,你不想容易受到其他人定义的可能性的影响net.java包将影响根级java。在Scala 2.7中,您可以通过使用_root_导入来阻止它。但这很丑,要安全,几乎到处都要这样做。所以现在的解决方案好多了,海事组织。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |