8.golang方法及びインタフェースを作成

主パッケージ

のインポート(
「FMT」
「数学」


構造体{映画入力
名文字列
評価のfloat32を
}

/ *
作成方法:複数の受信者をほとんどでメソッドを作成する関数を作成するが、FUNCの背後に、受信者が参照することができる構造構造体の集電体の形成方法
、機能ライブラリのコードを作成し、パッケージングの効果的な方法を形成することができるように、濃度の自分の方法を使用することができ、任意の構造の関連する方法を、
この方法により、我々はできます(golang構造で)以下のカテゴリーとして理解され、すべてのメソッド(この構造に関連付けられているすべてのメソッド)
受信機パラメータはポインタ参照差として宣言され(すなわち、アスタリスク*値及び符号を有するかどうかを、受信者に、あります):元の構造を変更する必要がある場合、ポインタを使用して、所望の動作構造は、元の構造を変更することなく、値が使用する場合に
宣言方法:タイプ...構造体{}

インタフェースは、メソッドのセットを指定し、そのこれは、モジュラーを達成するための強力な方法です。インターフェイスは、焦点を当てたすべてのメソッドを記述する青写真の方法論、と見、それらを実装していないことがあります。
さまざまな方法をインターフェース、多型が欲しかったです。それはインタフェースの様々な達成することができるように、多型は、種々の形態です。
モードインタフェース宣言:タイプ...インタフェース{}

さまざまな機能および方法:
マルチパラメータは、受信者を指定し、この方法は、それによってコードの再利用とモジュールの程度を増加させる、データタイプに呼び出すことができます
あなたは、インターフェイスの実装にメソッドを追加することができますが、これはインターフェイスに適用されない、構造のみに適用され、グラムが含まれていないインターフェイスでインターフェイスメソッドを実装します。

* /

タイプstruct {球
半径のfloat64
}

FUNC(S *スフィア)jiOne()//円領域のfloat64 {
リターンのfloat64(4)+ *にMath.PI(s.Radius s.Radius *)
}

FUNC(S *スフィア)jiTwo()のfloat64 {//円ボリューム
radiusCubed:s.Radius * = s.Radius s.Radiusの
リターン(のfloat64(4)/のfloat64(3))* + radiusCubedにMath.PIが
}

//インターフェイスを定義します。パワーオン機能、インタフェース機能をメソッドシグネチャの電源投入に記載されている:パラメータを取らないと、エラーのタイプを返し
型インタフェースロボット{
電源投入()エラー
}

//実装を、インタフェースは、引数として関数に渡されるインターフェースのタイプであります
FUNC(A *スフィア)電源投入である(){誤差
真{にIF
T:= ERRの
戻りT
}
}

ブートFUNC(R&LTロボット){エラー
復帰r.PowerOn()
}

FUNCメイン(){
S:= {球半径:. 5}
fmt.Println(s.jiOne())
fmt.Println(s.jiTwo())
}

//この方法は、上述と呼ばれる
FUNC(m個*映画)要約( )文字列{//(m個*映画)FUNC つ以上のパラメータ受信後、受信機は、方法の種類、映画の点構造であります---ポインタ
//要約メソッド名、パラメータ、及びタイプに戻さ
VAR文字列=「ABC」
戻りA
}

FUNCのsummary2(m個*映画){//文字列summary2機能および方法本明細書に要約文と等価。
:= m.Nameの
戻りA
}

おすすめ

転載: www.cnblogs.com/iifeng/p/11488921.html