侧边栏壁纸
博主头像
Z同学博主等级

工作磨平激情前,坚持技术的热忱。 欢迎光临Z同学的技术小站。 分享最新的互联网知识。

  • 累计撰写 290 篇文章
  • 累计创建 57 个标签
  • 累计收到 98 条评论

Kotlin 函数声明与返回值特殊数据类型介绍-Nothing,Unit等

Z同学
2022-02-28 / 0 评论 / 1 点赞 / 463 阅读 / 1,450 字
温馨提示:
本文最后更新于 2022-02-28,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

介绍

关于Kotlin的一些基本信息,我在前面介绍过不少。本篇属于巩固学习,加深一下对于Kotlin中的函数声明的意义。

以及介绍几种特殊情况下的返回值定义。例如异常数据定义返回值Nothing,Unit返回值定义等。

可以通过Kotlin学习笔记-基本语法和常见类型等 (zinyan.com) 了解基本的介绍。

Kotlin (zinyan.com) 下汇总了所有的我关于Kotlin的学习笔记。

函数声明

我们在开发中。所有的功能都是通过函数进行定义的。所以想学会使用一个语言。那么必须了解它的函数声明方式。

有些地方会叫做函数,和有些地方会叫做方法。方法就是函数,函数就是方法。

Kotlin中函数的定义逻辑参考以下的语法格式:

fun 函数名(参数列表): 返回值类型{
函数内容
return 返回值
}

除此以外,我们还可以在fun 右侧添加关键字。

结合一些实际示例理解:

//main函数
fun main(args: Array) {
    var str: String = "这是字"
}

//有返回值的
fun test(a:Int,b:String,c:Char,d:Float,r:Double,f:Array)):Int{
    //当前函数的名称叫做test, 返回值为Int,传值a,b,c,d,r,f;
return 0;
}

//没有返回值的
fun test1(a:Int){   
}

而参数定义,在Kotlin中遵循的左侧参数名,右侧数据类型的定义方式: 参数名:数据类型

例如:

var a:Int
var b:String
val c:Boolean
val d:Double

不管是返回值参数定义,还是入参定义。只要是属于参数。都是遵循该逻辑。左侧变量名,右侧数据类型。

而由于Kotlin支持上下文联想,所以有时候我们可以省略右侧的数据类型。Kotlin会自动根据左侧的计算结果给右侧的对象赋值相应的类型。

返回特殊数据类型

我们如果知道函数要返回什么数据类型,我们可以直接写该类型。但是往往有些情况下我们不知道返回什么类型。这种特殊情况下,我们就要使用相应的特殊类型了。

这里主要介绍UnitNothing 类型。

unit 数据类型

Kotlin中,针对不需要返回具体数据的函数,我们可以声明返回类型为Unit。就如同java中没有数据返回的函数声明为void一样。

而针对Unit函数,我们通常情况下是可以省略掉的。我们如果不定义的话,kotlin会自动编译为Unit

//没有返回值的
fun test1(a:Int):Unit{   
    return 
}

我们可以默认省略掉Unit 和函数中的return。所以,在Kotlinunit代表的就是没有实际意义的数据。

Nothing 数据类型

Kotlin中有一个特殊的数据类型Nothing。它只能用于函数返回类型声明,不能定义为变量声明。相较于而言,Unit可以定义为变量声明。Nothing声明的函数永远不会返回正常值,只会抛出异常。

示例:

fun readZinyan():Nothing{
	throw IOException()
}

在上面的示例中,函数的返回类型为Nothing。我们如果定义函数为Exception的话。那么它的返回值就必须声明为Nothing

通常在单元测试框架执行测试失败的时候,可以通过定义Nothing返回类型的函数来抛出异常。

我们如果进行sdk开发,在用户使用时没有按照规范调用时我们也可以定义检测函数,并使用Nothing返回类型来抛出异常终止程序运行等。

针对Nothing和Unit的介绍就到这里了。

1

评论区