2017年3月3日金曜日

golang でオブジェクト指向の基本中の基本

概要

golang でオブジェクト指向を意識したサンプルコードを書いてみました

環境

  • CentOS 6.7 64bit
  • golang 1.6

サンプルコード

こんな感じで interface と struct を使えば、簡単なオブジェクト指向なら簡単に書けます

package main

import (
        "fmt"
)

type Person interface {
        Say()
}

type SuperPerson struct {
        Name string
        Age  int
}

func (sp *SuperPerson) Say() {
        fmt.Printf("I am %s, I am %d\n", sp.Name, sp.Age)
}

func (sp *SuperPerson) SetAge(age int) {
        sp.Age = age
}

func main() {
        sp := SuperPerson{"hawk", 30}
        sp.Say()
        sp.SetAge(32)
        sp.Say()
        sp2 := new(SuperPerson)
        sp2.Name = "snow"
        sp2.SetAge(20)
        sp2.Age = 22
        sp2.Say()
}

最後に

勉強したので備忘録として残りしておきます
golang はオブジェクト指向言語ではないので、あまり使いすぎるのは要注意です
いろいろと調べるとわかりますが、継承とかやろうとするとハマるようです

0 件のコメント:

コメントを投稿