株式会社ヴァンデミックシステム

Blog

<スポンサーリンク>

no-struct

package main

import "fmt"

type MyInt int

func (i MyInt) Double() int{
    // integerにキャストする
    return int(i * 2)
}

func main() {
    myInt := MyInt(10)
    fmt.Println(myInt.Double())
}
20

インターフェース

package main

import "fmt"

type Human interface {
    Say() string
}

type Person struct{
    Name string
}

func (p *Person) Say() string{
    p.Name = "Mr." + p.Name
    fmt.Println(p.Name)
    return p.Name
}

// Humanインターフェースを受け付ける
func DriveCar(human Human){
    if human.Say() == "Mr.Mike" {
        fmt.Println("Run")
    }else{
        fmt.Println("Get Out")
    }
}

func main(){
    var mike Human = &Person{"Mike"}
    var x Human = &Person{"X"}
    DriveCar(mike)
    DriveCar(x)
}
Mr.Mike
Run
Mr.X
Get Out

<スポンサーリンク>

コメントを残す

Allowed tags:  you may use these HTML tags and attributes: <a href="">, <strong>, <em>, <h1>, <h2>, <h3>
Please note:  all comments go through moderation.

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)