😸

[Go] 型のコンストラクタ

2022/09/25に公開

型のコンストラクタを示す関数は、New[型]とするのが一般的。
なお、型のコンストラクタは対象の型のポインタ型を返すように定義する。

Newを使用して他のパッケージから値を呼び出す.

package main

import (
	"fmt"
)

// 小文字にすると、他のパッケージから呼び出せない。
type Ver struct {
	x, y int
}

func (v Ver) Area() int {
	return v.x * v.y
}

// iというintを引数に取るScale()
func (v Ver) Scale(i int) {
	v.x = v.x * i
	v.y = v.y * i
}

// Ver型を引数vに取り、intを返す
func Area (v Ver) int {
	return v.x * v.y
}

func New(x, y int) *Ver {
	return &Ver{x, y}
}

func main () { 
// v := Ver{1,2}
// fmt.Println(Area(v))
v := New(3, 4)
v.Scale(10)
fmt.Println(v.Area())
}

Discussion