こんにちは、ナナオです。

前回に引き続き競プロを実施していきたいと思います。

今回の問題は以下です。

クラスのメンバの更新 | レベルアップ問題集 | プログラミング学習サイト【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)
        }
    }
}

前回のコードにセッターを追加しました。

ということで今回はこれで👍