空インターフェイスとは、定義すべきメソッドを持たないインターフェイスのことだ。言い換えるとどんな型にも当てはまる。空インターフェイスの配列やスライスはどんな型でも格納することができる。下の例ではスライス a に整数、実数、文字列を格納している。…
2017年11月11日
1 分
splice して push する。破壊的なので注意。…
2017年11月11日
1 分
インターフェイスとは、異なる型の構造体を同じ型として扱うための抽象型のようなものだ。Java のインターフェイスと同様らしいけど Java のことはよく知らない。インターフェイスにはメソッドの型だけが定義されていて、そのメソッドすべてを実装した構造体はインターフェイスの型として扱えるようになる。…
2017年11月9日
1 分
Go はオブジェクト指向言語ではないけど、「構造体の埋め込み」という機能によって、似たようなことができる。…
2017年11月4日
1 分
連結リストとは、値を保持するセルが数珠つなぎになった構造、つまり Scheme のリストと同じ構造だ。…
2017年11月3日
2 分
メソッドは、構造体(の型)と結びつけられた関数だ。Go はオブジェクト指向プログラミング言語ではないけど、このメソッドや構造体の埋め込み(これについては後で書くつもり)によって、オブジェクト指向的なプログラミングができるようになっている。…
2017年11月2日
1 分
構造体は、既存の型を組み合わせて新しい型を作る機能だ。とりあえずは C の構造体を同じようなものだと考えればいい。…
2017年10月31日
3 分
new 関数は、動的にメモリを割り当ててそのアドレス、つまりポインタを返す。…
2017年10月29日
1 分
Go のポインタは C のポインタに似ている。変数のアドレスを得るためには & を使い、ポインタのさす値を参照するには * を使う。宣言するのに * を使うのも一緒だけど、Go の場合には変数名ではなく型の前につける。…
2017年10月28日
2 分
昨日、一昨日のエントリで、関数を引数にとる高階関数を見てきた。今度は関数を返す関数を考えよう。…
2017年10月25日
1 分