☑本記事の内容
- Stringer
- カスタムエラー
Contents
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