和 Java 一样,每个代码文件的开头都可以包含一个 package 声明,注意,是可以,也就是说也可以没有,Java 也是可以没有的。
在 Kotlin 中,package 的路径和该类所在的真实路径可以是不一致的。这个和 Java 不一样,Java 在这方面是强约束。个人建议还是尽量让他们保持一致,Kotlin 这样的设计应该是有他的道理的,但是我还是觉得这样的飘逸不够严谨,写的人可能很爽,看的人会很头疼,而且有时候,看的人和写的人是同一个人,只是中间隔着若干时间,这时候看代码的人,喷也不是,不喷也不是。
和 Java 不同的是,代码文件里可以直接定义方法,而 Java 方法肯定是在类里面的。 比如代码:
package foo.bar
fun baz() {}
class Goo {}
直接在包上定义方法也是 kotlin 的一个特别的地方,所以,上面的 baz() 方法,调用的全路径是 foo.bar.baz。Goo 类的全路径是 foo.bar.Goo
Java 文件默认都 import java.lang 了,Kotlin 也默认 import 了很多包了。
Kotlin import 语法如下: import foo.Bar // Bar is now accessible without qualification import foo.* // everything in 'foo' becomes accessible import bar.Bar as bBar // bBar stands for 'bar.Bar'
和 Java 不一样,Kotlin 不支持 import static 语法。
另外,Kotlin 的 import 多了 as 语法,这个在当需要 import 两个不同包但是相同类名的时候,就比较实用了,在 Java 中,碰到这种情况,咱们只能使用类的全称。Kotlin 中的 as 就可以简化这样的代码,可以更加简洁了。
- EOF -
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动。
转载请注明:文章转载自 Binkery 技术博客 [https://binkery.com]
本文标题: Kotlin 学习之包 Package
本文地址: https://binkery.com/archives/573.html