Go の goto 文

Go の goto 文

goto 文

goto 文は、指定したラベルへジャンプする。

Go は trycatchraise のような例外処理構文をサポートしていない。同様の制御フローを実装する場合は、次のように記述する。

package main

import (
    "fmt"
    "errors"
)

func main() {
    funcA()
}

func funcA() (string, error) {
    var err error
    filename := ""
    data := ""

    filename, err = GetFileName()
    if err != nil {
        fmt.Println(err)
        goto Done
    }

    data, err = ReadFile(filename)
    if err != nil {
        fmt.Println(err)
        goto Done
    }

    fmt.Println(data)

Done:
    return data, err
}

func GetFileName() (string, error) {
    return "sample.txt", nil
}

func ReadFile (filename string) (string, error) {
    return "Hello world!", errors.New("Can't read file")
}

sample.txt ファイルが存在しない場合の実行結果:

Can't read file