Go語言學(xué)習(xí)及java/js/py語言與對比(二)

變量聲明

  • Go

    1. 變量名由字母、數(shù)字、下劃線組成,其中首個字符不能為數(shù)字
    2. 聲明變量的一般形式是使用 var 關(guān)鍵字
    3. 可以一次聲明多個變量 var a,b,c = 1,2,3
    4. 聲明時若沒有初始化會被賦默認(rèn)值,"",false,0,nil;
    5. 聲明時不指定類型,程序會自行判斷變量類型
    6. 可以省略var關(guān)鍵字聲明,使用:= 符號,但是左邊的變量名不能已經(jīng)存在
    7. 使用簡短形式進(jìn)行局部變量聲明后,就必須使用,否則會報錯,全局變量無要求
    8. 可以使用_ ,這里_表示一個只寫變量,無法讀到他的值,可以被棄用
    9. 一個函數(shù)可以返回多個值
  • Java

    1. 相同
    2. 聲明變量需要指定對應(yīng)的變量類型
    3. 不支持一次聲明多個
    4. 聲明時若沒有初始化也會被賦默認(rèn)值,"",false,0,null,
    5. 聲明時不指定類型,程序會報錯
    6. 不支持省略變量類型聲明
    7. 不支持簡短形式聲明變量,但是可以棄用局部變量
    8. 沒有可以使用_ 進(jìn)行表示棄用的功能
    9. 一個方法只能返回一個類型的值
  • Python

    1. 基本相同,但是_開頭的表示為私有的,不能直接訪問
    2. 變量聲明不需要指定類型,但是也可以使用var進(jìn)行指定
    3. 支持多變量同時聲明
    4. 每個變量在使用前都必須賦值,變量賦值以后該變量才會被創(chuàng)建
    5. 同Go語言,可以不聲明變量類型,程序會判斷
    6. 支持簡短形式
    7. 可以棄用
    8. 可以返回多個值
  • JavaScript

    1. 基本相同
    2. 需要使用var進(jìn)行聲明定義
    3. 支持多變量同時聲明
    4. 有默認(rèn)值 undefined;
    5. 同上

常量聲明

  • Go

    1. 常量中的數(shù)據(jù)類型只可以是布爾型、數(shù)字型(整數(shù)型、浮點(diǎn)型和復(fù)數(shù))和字符串型。
    2. 使用const 關(guān)鍵字
    3. iota,特殊常量,在const內(nèi)部塊中使用, const關(guān)鍵字出現(xiàn)時將被重置為 0
  • Java

    1. 使用final關(guān)鍵字進(jìn)行聲明
  • Python

    1. python沒有常量
  • JavaScript

    1. 使用const關(guān)鍵字進(jìn)行聲明

值類型與引用類型

  • 概念:
    • 值類型
      一些基礎(chǔ)類型,例如基礎(chǔ)數(shù)據(jù)類型和字符串類型會在計算機(jī)中存儲有一份,所以當(dāng)變量聲明為這些基礎(chǔ)類型時,變量在計算機(jī)中沒有內(nèi)存地址,而是直接指向棧中存儲的數(shù)據(jù)。

    • 引用類型
      一些復(fù)雜類型和自定義的類型,在變量聲明時,會將數(shù)據(jù)的引用地址賦值給變量,變量此時擁有的是該對象的一份內(nèi)存地址,而非直接數(shù)據(jù)。

    • 值傳遞
      在調(diào)用方法是,值類型被傳入方法參數(shù),這是稱為值傳遞

    • 引用傳遞
      在調(diào)用方法是,引用類型被傳入方法參數(shù),這是稱為值傳遞

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容