Kotlin函数 ② ( Unit 函数 | TODO 函数抛出异常返回 Nothing 类型 | 反引号函数名 )

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin函数 ② ( Unit 函数 | TODO 函数抛出异常返回 Nothing 类型 | 反引号函数名 )相关的知识,希望对你有一定的参考价值。

文章目录





一、Unit 函数



Java 语言没有返回值的函数返回类型void ;

Kotlin 语言 没有返回值的函数 其返回类型是 Unit , 该函数又称为 Unit 函数 ;


Kotlin 语言中 推出 Unit 类型概念 , 是为了 兼容 泛型 概念 ,

如果 函数没有返回值 , 就可以 忽略该类型 , 返回 void ,

但是在 泛型 概念中 , 必须有一个确定的 类型 , 因此这里引入 Unit 类型 ;


代码示例 : 在下面代码的 hello() 函数的返回值类型是 Unit 类型 , 如果打印该返回值 , 打印结果为 kotlin.Unit ;

fun main() 
    println(hello())


fun hello(): Unit 
    println("Hello")

执行结果 :

Hello
kotlin.Unit





二、TODO 函数抛出异常返回 Nothing 类型



在 Kotlin 中 有一种函数 TODO 函数 ,

TODO 函数 唯一的作用 就是 抛出异常 ,

该函数 执行永远失败 , 并且 返回 Nothing 类型 ;


TODO 函数原型如下 :

/**
 * 总是抛出[NotImplementedError],表示操作未实现。
 *
 * @param reason一个解释为什么缺少实现的字符串。
 */
@kotlin.internal.InlineOnly
public inline fun TODO(reason: String): Nothing = 
	throw NotImplementedError("An operation is not implemented: $reason")

代码示例 :

fun main() 
    TODO("TODO 抛出异常")

执行结果 :

Exception in thread "main" kotlin.NotImplementedError: An operation is not implemented: TODO 抛出异常
	at HelloKt.main(Hello.kt:2)
	at HelloKt.main(Hello.kt)





三、反引号函数名



Java 的函数名要求 :

  • 只能由 字母数字下划线 构成
  • 首字母并不能是数字
  • 不能是关键字

Kotlin 中 函数名 可以使用 空格 , 特殊字符 , 关键字 , 前提是 该函数名 必须使用 反引号 ;

注意 Kotlin 和 Java 中的关键字不同 , 不管是哪个语言的关键字 , 都不能作为函数名 , 但是如果将关键字 使用反引号 括起来 , 就可以使用其作为函数名 ;


代码示例 :

fun main() 
    `~!@# Hello World %^&*`()


fun `~!@# Hello World %^&*`()
    println("Hello World")

执行结果 :

以上是关于Kotlin函数 ② ( Unit 函数 | TODO 函数抛出异常返回 Nothing 类型 | 反引号函数名 )的主要内容,如果未能解决你的问题,请参考以下文章

kotlin入门知识点总结 常量,条件语句,String,方法,UNIT函数和NOTHING函数

测试是否调用通过函数参数传递的函数(Android / Kotlin))

Kotlin中,理解T.()->Unit 、 ()->Unit与(T) -> Unit

Kotlin返回值UnitNothing与Any

Kotlin返回值UnitNothing与Any

Kotlin常用的 Kotlin 类 ② ( 枚举类 | 枚举类定义函数 | 密封类 )