變量聲明
-
Go
- 變量名由字母、數(shù)字、下劃線組成,其中首個字符不能為數(shù)字
- 聲明變量的一般形式是使用 var 關(guān)鍵字
- 可以一次聲明多個變量
var a,b,c = 1,2,3 - 聲明時若沒有初始化會被賦默認(rèn)值,
"",false,0,nil; - 聲明時不指定類型,程序會自行判斷變量類型
- 可以省略var關(guān)鍵字聲明,使用:= 符號,但是左邊的變量名不能已經(jīng)存在
- 使用簡短形式進(jìn)行局部變量聲明后,就必須使用,否則會報錯,全局變量無要求
- 可以使用_ ,這里_表示一個只寫變量,無法讀到他的值,可以被棄用
- 一個函數(shù)可以返回多個值
-
Java
- 相同
- 聲明變量需要指定對應(yīng)的變量類型
- 不支持一次聲明多個
- 聲明時若沒有初始化也會被賦默認(rèn)值,
"",false,0,null, - 聲明時不指定類型,程序會報錯
- 不支持省略變量類型聲明
- 不支持簡短形式聲明變量,但是可以棄用局部變量
- 沒有可以使用_ 進(jìn)行表示棄用的功能
- 一個方法只能返回一個類型的值
-
Python
- 基本相同,但是_開頭的表示為私有的,不能直接訪問
- 變量聲明不需要指定類型,但是也可以使用var進(jìn)行指定
- 支持多變量同時聲明
- 每個變量在使用前都必須賦值,變量賦值以后該變量才會被創(chuàng)建
- 同Go語言,可以不聲明變量類型,程序會判斷
- 支持簡短形式
- 可以棄用
- 可以返回多個值
-
JavaScript
- 基本相同
- 需要使用var進(jìn)行聲明定義
- 支持多變量同時聲明
- 有默認(rèn)值 undefined;
- 同上
常量聲明
-
Go
- 常量中的數(shù)據(jù)類型只可以是布爾型、數(shù)字型(整數(shù)型、浮點(diǎn)型和復(fù)數(shù))和字符串型。
- 使用const 關(guān)鍵字
- iota,特殊常量,在const內(nèi)部塊中使用, const關(guān)鍵字出現(xiàn)時將被重置為 0
-
Java
- 使用final關(guān)鍵字進(jìn)行聲明
-
Python
- python沒有常量
-
JavaScript
- 使用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ù),這是稱為值傳遞