いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Goメモ-11 (明示的な型変換, Type conversions, Tour of Go)

概要

Tour of Go の - Type conversions についてのサンプル。

tour.golang.org

Go言語では、暗黙的な型変換が一切認められません。

なので、必ず型を指定して明示的に型変換をする必要があります。

型変換は、型(値) と型を関数呼び出しのように指定して行います。

サンプル

package tutorial

import "fmt"

type (
    int2 int
)

// TypeConvertBasicTypes は、 Tour of Go - Type conversions (https://tour.golang.org/basics/13) の サンプルです。
func TypeConvertBasicTypes() error {
    // ------------------------------------------------------------
    // 基本型の型変換
    // Go言語では、キャストしたい型を関数呼び出しのように指定してキャストする.
    // Go言語では、「暗黙の型変換」は存在しない。必ず明示的に変換を指定しないといけない
    //
    // type int2 int と別名を付けた場合でも同じ。明示的なキャストが必要。
    // ------------------------------------------------------------
    var (
        i  = 100
        i2 int2
        ui uint
        f  float32
    )

    // uint に変換
    ui = uint(i)
    // float に変換
    f = float32(i)
    // int2 に変換
    i2 = int2(i)

    fmt.Printf("%T\t%T\t%T\t%T\n%v\t%v\t%v\t%v\n", i, i2, ui, f, i, i2, ui, f)

    return nil
}

try-golang/tutorial_gotour_07_typeconvert_basictypes.go at master · devlights/try-golang · GitHub

実行すると以下な感じ。

[Name] "tutorial_gotour_typeconvert_basictypes"
int tutorial.int2   uint    float32
100 100 100 100

過去の記事については、以下のページからご参照下さい。

  • いろいろ備忘録日記まとめ

devlights.github.io

サンプルコードは、以下の場所で公開しています。

  • いろいろ備忘録日記サンプルソース置き場

github.com

github.com

github.com