go言語トラップの2:Unused Variables

1070 ワード

引き続きgo言語の罠を制御して、今日go言語の中で変数の罠を使っていないで、使わないで捨てますか、go言語の発明者はこのように言います...まず穴を見てみましょう:
package main

var gvar int //not an error

func main() {
    var one int   //error, unused variable
    two := 2      //error, unused variable
    var three int //error, even though it's assigned 3 on the next line
    three = 3
}
        
./hello.go:6: one declared and not used
./hello.go:7: two declared and not used
./hello.go:8: three declared and not used

はい、one、two、threeの3つの変数に問題があります.oneは宣言しただけで、twoは値を割り当て、threeは先に宣言した後に値を割り当て、本質的にこの3つの変数は使用されていません.正しい書き方を見てみましょう.
package main

import "fmt"
package main

import "fmt"

func main() {
    var one int
    _ = one
    fmt.Println(one)
    two := 2
    fmt.Println(two)

    var three int
    three = 3
    one = three

    var four int
    four = four
}
    
0
2

値が割り当てられていない整数変数oneの場合、goのデフォルト値は0です.正しい書き方から,goでは,使用の定義に対して変数が付与番号の右側に現れる必要があり,変数が使用されていると考えられる.goのこのような設計は合理的で、プログラムを実行する過程で、いくつかの不要な判断と付与を減らして、pythonに対して、許容誤差性が悪くなって、この点だけで性能はもっと良いです.