最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Kotlin學(xué)習(xí)筆記之const val與val

 更新時(shí)間:2018年05月08日 10:42:06   作者:wenson123  
這篇文章主要給大家介紹了關(guān)于Kotlin學(xué)習(xí)筆記之const val與val的相關(guān)資料,并給大家介紹了const val和val區(qū)別以及Kotlin中var和val的區(qū)別,需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

const的使用

const 必須修飾val

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

const val THOUSAND = 1000
object myObject {
 const val constNameObject: String = "constNameObject"
}


class MyClass {
 companion object Factory {
 const val constNameCompanionObject: String = "constNameCompanionObject"
 }
}

const val和val區(qū)別:

說(shuō)到這,我們還是沒(méi)有搞清楚const和val的區(qū)別,ok讓我們看代碼分析。

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

打開(kāi)Android studio 點(diǎn)擊 Tools->Kotlin->Show Kotlin ByteCode

// class version 50.0 (50)
// access flags 0x31
public 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
 ......
}

從字節(jié)碼我們可以看到const val 和val修飾對(duì)象的主要區(qū)別是:

  • const val 可見(jiàn)性為public final static,可以直接訪問(wèn)。
  • val 可見(jiàn)性為private final static,并且val 會(huì)生成方法getNormalObject() ,通過(guò)方法調(diào)用訪問(wèn)。

附:Kotlin中var和val的區(qū)別

Kotlin中有兩個(gè)關(guān)鍵字定義變量,這兩個(gè)關(guān)鍵字外形看著差別很小就只差了一個(gè)字母,但實(shí)際差別很大的。

var是一個(gè)可變變量,這是一個(gè)可以通過(guò)重新分配來(lái)更改為另一個(gè)值的變量。這種聲明變量的方式和java中聲明變量的方式一樣。

val是一個(gè)只讀變量,這種聲明變量的方式相當(dāng)于java中的final變量。一個(gè)val創(chuàng)建的時(shí)候必須初始化,因?yàn)橐院蟛荒鼙桓淖儭?/p>

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

總結(jié):

當(dāng)定義常量時(shí),出于效率考慮,我們應(yīng)該使用const val方式,避免頻繁函數(shù)調(diào)用。

好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • Android使用ShareSDK實(shí)現(xiàn)應(yīng)用分享的功能

    Android使用ShareSDK實(shí)現(xiàn)應(yīng)用分享的功能

    這篇文章主要為大家詳細(xì)介紹了Android使用ShareSDK實(shí)現(xiàn)應(yīng)用分享的功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Android 按后退鍵退出Android程序的實(shí)現(xiàn)方法

    Android 按后退鍵退出Android程序的實(shí)現(xiàn)方法

    本篇文章介紹了,在Android中按后退鍵退出Android程序的實(shí)現(xiàn)方法。需要的朋友參考下
    2013-04-04
  • Android6.0 消息機(jī)制原理解析

    Android6.0 消息機(jī)制原理解析

    這篇文章主要為大家詳細(xì)介紹了Android6.0 消息機(jī)制原理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Android控件系列之EditText使用方法

    Android控件系列之EditText使用方法

    EditText是接受用戶輸入信息的最重要控件。通過(guò)前面課程的學(xué)習(xí),您可能會(huì)猜到可以利用EditText.getText()獲取它的文本,但真正的項(xiàng)目中,可能沒(méi)那么簡(jiǎn)單,需要更多的限制,如文本長(zhǎng)度限制,是否數(shù)字限制等等
    2012-11-11
  • 初步編寫IDEA\AndroidStudio翻譯插件的方法

    初步編寫IDEA\AndroidStudio翻譯插件的方法

    這篇文章主要介紹了初步編寫IDEA\AndroidStudio翻譯插件,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Android編程重寫ViewGroup實(shí)現(xiàn)卡片布局的方法

    Android編程重寫ViewGroup實(shí)現(xiàn)卡片布局的方法

    這篇文章主要介紹了Android編程重寫ViewGroup實(shí)現(xiàn)卡片布局的方法,實(shí)例分析新建FlowLayout繼承ViewGroup類及設(shè)置布局文件實(shí)現(xiàn)卡片布局效果的相關(guān)技巧,需要的朋友可以參考下
    2016-02-02
  • Android Studio使用教程(二):基本設(shè)置與運(yùn)行

    Android Studio使用教程(二):基本設(shè)置與運(yùn)行

    這篇文章主要介紹了Android Studio使用教程(二):基本設(shè)置與運(yùn)行,本文講解了項(xiàng)目結(jié)構(gòu)、偏好設(shè)置、常用功能介紹、創(chuàng)建模擬器等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • android中TabHost的圖標(biāo)(48×48)和文字疊加解決方法

    android中TabHost的圖標(biāo)(48×48)和文字疊加解決方法

    開(kāi)發(fā)過(guò)程中,有時(shí)候圖標(biāo)稍微大點(diǎn),比如48×48的時(shí)候,文字就會(huì)和圖標(biāo)疊加起來(lái),遇到這種問(wèn)題我們?cè)撛鯓犹幚砟??本文將詳?xì)介紹希望對(duì)你有所幫助
    2013-01-01
  • Android App端與PHP Web端的簡(jiǎn)單數(shù)據(jù)交互實(shí)現(xiàn)示例

    Android App端與PHP Web端的簡(jiǎn)單數(shù)據(jù)交互實(shí)現(xiàn)示例

    本篇文章主要介紹了Android App端與PHP Web端的簡(jiǎn)單數(shù)據(jù)交互實(shí)現(xiàn)示例,詳細(xì)的介紹了交互的代碼,非常具有實(shí)用價(jià)值,有興趣的可以了解一下
    2017-10-10
  • android studio編譯jar包或者aar包的方法教程詳解

    android studio編譯jar包或者aar包的方法教程詳解

    這篇文章主要介紹了android studio編譯jar包或者aar包的方法教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03

最新評(píng)論

织金县| 曲松县| 临猗县| 许昌市| 三原县| 滦南县| 茂名市| 英吉沙县| 贵港市| 丰宁| 山西省| 扬中市| 绍兴县| 修水县| 罗山县| 郓城县| 东安县| 十堰市| 文登市| 铅山县| 桦川县| 襄垣县| 丰台区| 视频| 习水县| 沈丘县| 宣武区| 汉中市| 广东省| 任丘市| 康定县| 孙吴县| 方城县| 潞城市| 白城市| 临泽县| 德庆县| 涡阳县| 西畴县| 常熟市| 阳西县|