答案 0 :(得分:14)
源文件的所有内容(例如类和函数)都包含在声明的包中。
所以只需创建一个像这样的源文件:
package my.pkg
fun f0()=0
fun f1()=1
我们可以声明名为f0
和f1
的函数对my.pkg
包直接可见。然后可以导入这些函数并使用类似于类:
import my.pkg.f0
import my.pkg.f1
或者,使用*
语法:
import my.pkg.*
答案 1 :(得分:2)
包级函数也称为顶级函数。它们直接在文件中声明,而不为它们创建任何类。它们通常是独立于任何类的实用函数:
UserUtils.kt
package com.app.user
fun getAllUsers() { }
fun getProfileFor(userId: String) { }
用法:
import com.app.user.getProfileFor
val userProfile = getProfileFor("34")
您不需要手动编写 import
语句,只需输入函数名称,自动导入就会完成它的工作。
当函数与类有些相关时,将它们定义在类的正上方,在同一个文件中:
User.kt
package com.app.user
fun getAllUsers() { }
fun getProfileFor(userId: String) { }
data class User(val id: String, val name: String)
用法:
import com.app.user.getAllUsers
val userList = getAllUsers()
companion object
当函数与类密切相关时,将它们定义在 companion object
中:
User.kt
data class User(val id: String, val name: String) {
companion object {
fun getAll() { }
fun profileFor(userId: String) { }
}
}
用法:
import com.app.user.User
val userProfile = User.profileFor("34")
就是这样!