型別 多變數賦值和命名建議

2021-10-25 08:31:04 字數 794 閱讀 1811

//go:noinline

//go:nosplit

func test() (int, int)

func main()

多變數賦值涉及計算規則問題,很多語言對於多變數賦值其實是個坑。go 語言的做法先計算右邊的值,然後批量對左邊進行賦值。

a, b := 1, 2沒有歧義,a, b = b+1, a+2怎麼計算呢?第一種解釋先計算b+1把這個結果賦值給a那麼a = 3,然後計算a+2那麼a = 5b = 5。第二種解釋是什麼?先把b+1a+2計算出來再進行ab的賦值ab都等於3。處理順序到底是什麼?我們需要用反彙編的方式來確認。

$ go build -gcflags "-n -l"

$ go tool objdump -s "main\.test" test

main.go:5 movq $0x0, 0x30(sp) # ret1 = 0 30(sp)

main.go:5 movq $0x0, 0x38(sp) # ret2 = 0 38(sp)

main.go:6 movq $0x1, 0x8(sp) # a = 1 8(sp)

main.g

python用,進行多變數賦值

多變數賦值 陣列形式 data hello 18 2002,2 2 name,age,birth data print name print age print birth 多變數賦值 元組形式 data hello 18 2002,2 2 name,age,birth data print nam...

JS中變數命名和賦值規則

1.嚴格區分大小寫 2.首字元只能是字母 下劃線 不能是數字,其他字元可以是字母 數字 下劃線 3.開始是 符的一般是jquery庫或者其他的類庫里宣告的變數 4.object物件型別的原型,命名以o開頭 5.首字元是下劃線的一般表示私有變數,如 var total 6.採用駝峰命名法,即由多個單詞...

Python 變數型別 變數賦值

變數賦值 python 中的變數賦值不需要型別宣告。每個變數在記憶體中建立,都包括變數的標識,名稱和資料這些資訊。每個變數在使用前都必須賦值,變數賦值以後該變數才會被建立。等號 用來給變數賦值。等號 運算子左邊是乙個變數名,等號 運算子右邊是儲存在變數中的值。例如 例項 python 2.0 usr...