首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【Kotlin】函数 ② ( Unit 函数 | TODO 函数抛出异常返回 Nothing 类型 | 反引号函数名 )

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

作者头像
韩曙亮
发布2023-03-30 18:36:00
发布2023-03-30 18:36:00
1.2K0
举报

文章目录

一、Unit 函数


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

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

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

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

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

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

代码语言:javascript
复制
fun main() {
    println(hello())
}

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

执行结果 :

代码语言:javascript
复制
Hello
kotlin.Unit

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


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

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

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

TODO 函数原型如下 :

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

代码示例 :

代码语言:javascript
复制
fun main() {
    TODO("TODO 抛出异常")
}

执行结果 :

代码语言:javascript
复制
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 中的关键字不同 , 不管是哪个语言的关键字 , 都不能作为函数名 , 但是如果将关键字 使用反引号 括起来 , 就可以使用其作为函数名 ;

代码示例 :

代码语言:javascript
复制
fun main() {
    `~!@# Hello World %^&*`()
}

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

执行结果 :

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-01-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、Unit 函数
  • 二、TODO 函数抛出异常返回 Nothing 类型
  • 三、反引号函数名
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档