GoのようにCのインターフェイスにどのようにプログラムすることができますか?Cのインターフェイスへのコーディング
移動コード:
package measure
type Weighable interface {
Weigh() float64
}
func Weight(w Weighable) float64 {
return w.Weigh()
}
すぐのfloat64を返す計量()メソッドを持つ任意の種類は "Weighable" であると考えられます。
package planet
type Info struct {
volume float
density float
}
func (own *Info) Weigh() float64 {
return own.volume * own.density
}
惑星は計量可能なので、計量できます。
package main
import "measure", "planet"
func main() {
Earth := &planet.Info{1097509500, 5.51}
EarthWeight = measure.Weight(Earth)
}
今何でも、人や亜原子粒子は、異なった計量してもよいが、同じコードを使用して呼び出すことができ、measure.Weight(人)またはmeasure.Weight(subatomicParticle)
関数のシグネチャを定義ヘッダファイル、続行するための正しい方法のようですが、どのようなインターフェースを取る機能について:質問は
議論として?これはC言語でできますか、それとも良い方法がありますか?
-1?役に立つヒント、修正など?役に立つ返信で有効な質問のように思えますが、私に言っているのは、ただ削除するだけなのですか?わかりません。 – ridthyself
いいえ、多分それは読者がそれが下降声のための有用であるか、または他の動機ではないと考えることを意味するかもしれません。しかし、それは確かに有効な質問です(*おそらく、大きな質問ではありません*)が有効です。 –