我正在阅读Kotlin参考指南,其中一部分说:
在Kotlin中,与Java或C#不同,类没有静态方法。在大多数情况下,建议只使用包级别的函数。
如何创建包级别的函数?
来自参考:
源文件的所有内容(如类和函数(都包含在声明的包中。
因此,只需创建一个这样的源文件:
package my.pkg
fun f0()=0
fun f1()=1
我们可以声明名为f0
和f1
的函数对my.pkg
包直接可见。然后可以导入这些函数,并将其与类类似地使用:
import my.pkg.f0
import my.pkg.f1
或者,使用*
语法:
import my.pkg.*
包级函数
包级别的函数也称为顶级函数。它们直接在文件中声明,而不为它们创建任何类。它们通常是独立于任何类的实用函数:
UserUtils.kt
package com.app.user
fun getAllUsers() { }
fun getProfileFor(userId: String) { }
用法:
import com.app.user.getProfileFor
val userProfile = getProfileFor("34")
您不需要手动编写import
语句,只需键入函数名,自动导入即可完成其工作。
具有类的包级别函数
当函数与一个类有某种关联时,在同一文件中,在类的上方定义它们:
用户.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
:中定义它们
用户.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")
就是这样!