2

これは Golang.org からのものです http://golang.org/pkg/sort/

 // By is the type of a "less" function that defines the ordering of its Planet arguments.
 type By func(p1, p2 *Planet) bool

この構造は見たことがありません。func が type の後に来るのはなぜですか? そして、ここでタイプとは何ですか?

私は次の構造を見てきましたが、

type aaaaaa interface { aaa() string }
type dfdfdf struct { } 

のように見たことがない

type By func(p1, p2 *Planet) bool

これはGoでどのように可能ですか? type は、interface、struct キーワード以外のものを取ることができますか?

ありがとう~!

4

2 に答える 2

0

別のユーザー定義型を含む任意の基本型と一緒に新しい型を定義できます。

たとえば、新しいタイプのファイルを定義する場合

type File struct {}

いくつかの方法で

func (f *File) Close() { ... }

func (f *File) Size() { ... }

次に、次のような新しいタイプを定義できます。

type SpecialFile File

その上で独自のさまざまなメソッドを定義します。

func (f *SpecialFile) Close() { (*File)(f).Close() }

注意すべき重要なことは、基本型が File であるにもかかわらず、SpecialFile 型には Size メソッドがないことです。Size メソッドを呼び出すには、*File にキャストする必要があります。

同じパッケージに含まれていない必要がある場合は、所有していないタイプに対してもこれを行うことができます。

于 2013-10-14T03:19:08.770 に答える