コンパイルしたいじゃん
スクリプト言語やってるとインタープリタばっかつかっちゃって全然コンパイルしない。別にそれはそれで便利でアジャイルっぽくていいんだけど。 たまにコンパイルしたくなる。実行ファイルっていう響きが悪くない。 コンパイルにはメリットも多いしね。そういうところから golang また書き始めた。
構造体の埋め込みの挙動が気になった
package main
import "fmt"
type A struct {
Name string
AnotherName string
}
type B struct {
A
}
type C struct {
Name string
A
}
func main() {
a := A{"hoge", "moge"}
b := B{A{"fuga", "foo"}}
c := C{"bar", A{"foobar", "foobarbar"}}
fmt.Printf("a-> %s, %s \nb-> %s, %s \nc-> %s, %s, %s", a.Name, a.AnotherName, b.Name, b.AnotherName, c.Name, c.A.Name, c.A.AnotherName)
return
}
こういうとき(構造体を埋め込んで同じ名前のフィールド・メソッドがあるとき)、出力どうなんの?っておもった。結局はこう。
➜ tmp go run test.go
a-> hoge, moge
b-> fuga, foo
c-> bar, foobar, foobarbar%
上書き元は捨てられるわけじゃなくて、ちゃんと取ってあるけど、省略呼び出しが出来なくなるだけみたい。便利。
2010年代言語やってない
一瞬Flutter欲があってDart勉強してたけど、最近やってない。Rustもきになるしな~。TypeScript も一時期書いてたけどもう1年ぐらい書いてない。 2010年代言語も毎日触りたいな。