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

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

今回の問題は以下です。

コンストラクタ | レベルアップ問題集 | プログラミング学習サイト【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)を実装したところです。

まぁコンストラクタというよりファクトリ関数っぽいですが、、

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