goのif文の不思議と型チェック

if文の特徴

  • ;で区切って、if文判定の前に式がかける。スコープ縮小
  • ,で区切って複数の戻り値に対応
// 型チェック
x = receive
if xi, ok := x.(int); ok{
    fmt.Println( xi * xi ) //=> 9
  }

空インターフェースの中身がintなら整数表示

receive := 3
var x interface{}

// 型チェック
x = receive
if xi, ok := x.(int); ok{
    fmt.Println( xi * xi ) //=> 9
  }