こんにちは、ナナオです。
前回に引き続き競プロを実施していきたいと思います。
今回の問題は以下です。
クラスのメンバの更新 | レベルアップ問題集 | プログラミング学習サイト【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 (e *Emplpyee) ChangeNum(number int) {
e.number = number
}
func (e *Emplpyee) ChangeName(name string) {
e.name = 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())
} else if cmd == "change_num" {
var j, num int
fmt.Scan(&j, &num)
es[j - 1].ChangeNum(num)
} else if cmd == "change_name" {
var j int
var name string
fmt.Scan(&j, &name)
es[j - 1].ChangeName(name)
}
}
}
前回のコードにセッターを追加しました。
ということで今回はこれで👍