「如果有一天,我也写函式库,要怎麽分享呢?」诗忆好奇的问。
唯心笑了笑。「首先要先定义package name
呢。还记得之前写网路连线的import okhttp3.OkHttpClient
吗?後面的okhttp3.OkHttpClient
就是该函式的package name
。」
诗忆疑惑。「没有package name
也能写函式的话,为什麽要package name
呢?」
「package name
很类似资料夹的概念,okhttp3.OkHttpClient
可以想成okhttp3
资料夹下的OkHttpClient
档案。如果都没有package name
,那同样名称的档案不就冲突了吗?」唯心解释。
「原来是这样啊。那package name
也尽量要取的比较不容易和其他人重复罗?」
「是呀,但是也不要取一些没有意义的名字,这样要搜寻的时候不是很容易呢。package name
一般都是二到四个层级,第一个会放组织,比如公司就会放com
或co
,但我们只是作业就放学号吧;第二个通常就放专案名称,第三个可以放功能,所以即使是同个函式库也能拥有多个package name
成员,但函式库外层需要独一无二的artifact id
。」
诗忆写了几个备选package name
,最後决定统一用u1234567.exercise
开头,宣告放在档案第一行。
pacakge u1234567.exercise
fun main() {
}
「对了,同一层的package
之间的档案可以直接互相引用类别和函式,但是有标注private
存取修饰词的除外。至於其他层的档案都要写import
喔。如果想要汇入多层package
,可以使用.*
的做法。但是如果汇入太多没有用到的函式库,只是徒增建置所花的时间和建置档案的大小唷。」
import u1234567.exercise.*
诗忆突然想到。「基本函式库都不用汇入耶?」
「是的,都存放在预设区,建置的时候能直接引用。基本函式库有很多呢。」唯心如此说着。
kotlin.*
kotlin.annotation.*
kotlin.collections.*
kotlin.comparisons.*
kotlin.io.*
kotlin.ranges.*
kotlin.sequences.*
kotlin.text.*
<<: [day26] - Angular Component to Web Component
在完整完善的隐私保护设计之下,也需有个健全的隐私保护法规在背後做支撑,藉由完善法规制度的保护之下,视...
塩米糕 地点:台南市新营区民治路78-19号 时间:11:00~14:00 17:00~20:...
有一小段时间没跟新了XD! 主要是平时都加班,下班去健身房回到家,就只剩1-2小时的学习时间,就慢慢...
【前言】 今天要来分享怎麽把我们之前的种种都推上主网啦!但是因为我的企划还没有确认上架时间,这边可...
以往使用MySQL遇到要执行ddl语法的时候,为了不影响线上运作,会使用工具来执行。 比较常听到的使...