こんにちは、ナナオです。
前回に引き続き競プロを実施していきたいと思います。
今回の問題は以下です。
コンストラクタ | レベルアップ問題集 | プログラミング学習サイト【paizaラーニング】
実装
以下のように実装しました。
package main
import "fmt"
type Emplpyee struct {
number int
name string
}
func NewEmployee(number int, name string) *Emplpyee {
return &Emplpyee{
number: number,
name: name,
}
}
func (e Emplpyee) GetNum() int {
return e.number
}
func (e Emplpyee) GetName() string {
return e.name
}
func main(){
var n int
fmt.Scan(&n)
var es []Emplpyee
for i := 0; i < n; i++ {
var cmd string
fmt.Scan(&cmd)
if cmd == "make" {
var number int
var name string
fmt.Scan(&number, &name)
es = append(es, *NewEmployee(number, name))
} else if cmd == "getnum" {
var j int
fmt.Scan(&j)
fmt.Println(es[j - 1].GetNum())
} else if cmd == "getname" {
var j int
fmt.Scan(&j)
fmt.Println(es[j - 1].GetName())
}
}
}
前回と少し異なるのは、コンストラクタ(NewEmployee)を実装したところです。
まぁコンストラクタというよりファクトリ関数っぽいですが、、
ということで今回はこれで👍