请教Kotlin中形如fun y() : x的函数声明含义
Kotlin顶级函数返回类型说明
在Kotlin里,fun y() : x这种写法里的: x,是声明函数y的返回类型为x类的实例——不管这个函数是定义在类内部还是外部(也就是你说的顶级函数),这个语法的含义都是统一的。
你之前了解的「变量名: 类名」是给变量指定类型,而函数声明里的: 类名是给函数的返回值指定类型,本质都是Kotlin的类型标注语法,只是作用对象不同:
- 变量标注:限定变量能存储的对象类型
- 函数返回类型标注:限定函数执行完成后必须返回的对象类型
举个实际例子更清楚:
假设我们有一个类User:
class User(val name: String)
然后写一个顶级函数:
fun createDefaultUser(): User { return User("匿名用户") }
这里的: User就明确告诉编译器,createDefaultUser函数执行结束后会返回一个User类的对象,函数体内必须通过return语句返回符合类型要求的实例。
另外补充一点:如果函数没有返回值(或者说返回Kotlin里的Unit类型),可以省略: Unit;但只要有明确的返回类型(比如你的x类),就必须显式写出这个类型标注。
内容的提问来源于stack exchange,提问作者Jaguar
相关产品推荐
相关产品推荐

