快速上手 Kotlin 开发系列之反引号

本节详细介绍 Kotlin 中的反引号。

首先需要明确反引号是哪个,反引号:键盘左上角与波浪线在一起的符号。

在 Kotlin 中反引号有两个特性:

  1. 可以解决关键字冲突的问题
  2. 可以强行将一个不合法的字符变为合法

其中第 1 个特性在前面的文章【快速上手 Kotlin 开发系列之与 Java 互调 (1)】中已经提到过,不再赘述。

今天着重介绍它的第 2 个特性,将不合法的字符强行变为合法。

强制字符合法化

例如,我们在命名一个函数名时,我们是不能使用纯数字或者空格来命名:

失败命名

但是我们可以通过反引号包裹来实现命名,下面三个函数第一个用数字命名,第二三个分别是用一个和两个空格来命名,它们都是不同的函数,并且调用都是没有问题的:

fun `1234`() {
    println(1234)
}

fun ` `() {
    println("空格1")
}

fun `  `() {
    println("空格2")
}

fun main() {
    `1234`()
    ` `()
    `  `()
}

应用场景

反引号强制字符合法化有什么应用场景呢?

其实这个特性我们一般不会使用它,除非是有些特殊的场景。

通过之前的文章我们知道,Kotlin 有个特有的访问修饰符 internal,它允许当前模块的类只能在当前模块使用而不能被其他模块访问,但是 Kotlin 与 Java 是完全兼容的,所以 Kotlin 支持了这种特性的话 Java 也必须要支持,可是 Java 是没有 internal 这样的关键字的,所以当 Kotlin 声明为 internal 时 Java 会把它声明成 public,这样的话在 Java 中跨模块是能够直接访问到的。

所以在这种场景下,如果你确定你的类是不希望被 Java 访问到的话,就可以在类名上做一些特殊不合法的字符,这样的话就可以只在 Kotlin 中访问而不能被 Java 访问。

例如,在 Java 中访问刚才声明的方法是不行的:

以上就是本节内容,欢迎大家关注~

长按关注

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值