快速上手 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 中訪問剛纔聲明的方法是不行的:

以上就是本節內容,歡迎大家關注~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章