Go言語入門⑬ ~Stringer・カスタムエラー~

☑本記事の内容
  • Stringer
  • カスタムエラー
参考資料:現役シリコンバレーエンジニアが教えるGo入門 + 応用でビットコインのシストレFintechアプリの開発

Go入門-Stringer-

✔Stringerの目次

基本的なこと

  • Stringの出力方法を変えたいときに使用する
  • 下記の場合だと年齢まで表示される
package main

import "fmt"

type Person struct {
	Name string
	Age  int
}

func main() {
	mike := Person{"Mike", 22}
	fmt.Println(mike)
}
(結果)
{Mike 22}
  • String()を使用して出力方法を変更する
package main

import "fmt"

type Person struct {
	Name string
	Age  int
}

func (p Person) String() string {
	fmt.Println("My name is " + p.Name + ".")
	return fmt.Sprintf("My name is %v.", p.Name)
}

func main() {
	mike := Person{"Mike", 22}
	fmt.Println(mike)
}
(結果)
My name is Mike.
My name is Mike.

Go入門-カスタムエラー-

✔カスタムエラーの目次

基本的なこと

  • 自分で好きなエラーを作成出来る
  • 作成する際は基本的にはアスタリスク(*)をつけてアドレスにする
package main

import (
	"fmt"
)

type UserNotFound struct {
	Username string
}

func (e *UserNotFound) Error() string {
	return fmt.Sprintf("User not found: %v", e.Username)
}

func myFunc() error {
	ok := false
	if ok {
		return nil
	}
	return &UserNotFound{Username: "mike"}
}

func main() {
	if err := myFunc(); err != nil {
		fmt.Println(err)
	}
}
(結果)
User not found: mike

Go言語入門⑭へ ≫

≪ Go言語入門⑫へ

目次

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUT US
サカイザ
機械設計→技術営業→SEと転職し、
現在フリーランスエンジニア
北海道出身東京在住
現在、Go案件を受注中
扱えるスキルGo,GCP,Java,AWS,SQL,Python,PHP,etc...
合同会社エンブリオ 代表社員