国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

Kotlin學習筆記之const val與val

2024-07-21 23:03:45
字體:
來源:轉載
供稿:網友

const的使用

const 必須修飾val

const 只允許在top-level級別和object中聲明,使用方式如下:

const val THOUSAND = 1000object myObject { const val constNameObject: String = "constNameObject"}class MyClass { companion object Factory { const val constNameCompanionObject: String = "constNameCompanionObject" }}

const val和val區別:

說到這,我們還是沒有搞清楚const和val的區別,ok讓我們看代碼分析。

object myObject { const val constObject: String = "constObject" val normalObject: String = "normalObject"}

打開Android studio 點擊 Tools->Kotlin->Show Kotlin ByteCode

// class version 50.0 (50)// access flags 0x31public final class com/example/kotlin/myObject { // access flags 0x19 public final static Ljava/lang/String; constObject = "constObject" @Lorg/jetbrains/annotations/NotNull;() // invisible // access flags 0x1A private final static Ljava/lang/String; normalObject = "normalObject" @Lorg/jetbrains/annotations/NotNull;() // invisible // access flags 0x11 public final getNormalObject()Ljava/lang/String; @Lorg/jetbrains/annotations/NotNull;() // invisible L0 LINENUMBER 144 L0 GETSTATIC com/example/kotlin/myObject.normalObject : Ljava/lang/String; ARETURN L1 LOCALVARIABLE this Lcom/example/kotlin/myObject; L0 L1 0 MAXSTACK = 1 MAXLOCALS = 1 ......}

從字節碼我們可以看到const val 和val修飾對象的主要區別是:

  • const val 可見性為public final static,可以直接訪問。
  • val 可見性為private final static,并且val 會生成方法getNormalObject() ,通過方法調用訪問。

附:Kotlin中var和val的區別

Kotlin中有兩個關鍵字定義變量,這兩個關鍵字外形看著差別很小就只差了一個字母,但實際差別很大的。

var是一個可變變量,這是一個可以通過重新分配來更改為另一個值的變量。這種聲明變量的方式和java中聲明變量的方式一樣。

val是一個只讀變量,這種聲明變量的方式相當于java中的final變量。一個val創建的時候必須初始化,因為以后不能被改變。

var name = "zhang san" println(name) name = "li si" println(name) val finalValue = "我是不可改變的"; println(finalValue); 

總結:

當定義常量時,出于效率考慮,我們應該使用const val方式,避免頻繁函數調用。

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到kotlin教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 澄迈县| 达日县| 宁夏| 尤溪县| 宁南县| 化州市| 靖州| 应用必备| 佛坪县| 巴彦淖尔市| 福海县| 固阳县| 观塘区| 手游| 广丰县| 大余县| 新巴尔虎左旗| 郎溪县| 镇原县| 博兴县| 赞皇县| 勐海县| 阜新市| 济宁市| 镇平县| 集安市| 忻州市| 龙川县| 土默特左旗| 泸水县| 乌苏市| 屏东市| 渑池县| 页游| 巧家县| 邳州市| 忻城县| 彩票| 乌拉特后旗| 道孚县| 平乐县|