GolangやRustでは積極的に構造体を使い、また構造体を効率的に使うための言語仕様も用意されていますが、その背景は必要なデータセットは構造体にまとめることで、読みやすく従ってバグも入りづらいコードを書くことにあるだろうと思います。
同じ機能をGolangとRustで記述してみます。
<Golang>
type Rectangle struct {
length float64
breadth float64
}
func (r Rectangle) area() float64 {
return r.length * r.breadth
}
<Rust>
struct Rectangle {
length: f64,
breadt: f64,
}
impl Rectangle{
fn area(&self) -> f64 {
return &self.length * &self.breadt
}
}
Rust呼び出し方、
fn main() {
let mut rec = Rectangle{length:0.0,breadt:0.0};
rec.length = 20.0;
rec.breadt = 30.0;
print!("{}", rec.area())
}
Golangでは
(r Rectangle)
を使って構造体と結びつけ、Rustでは
impl Rectangle
でインターフェースの如くimplementでメソッドを定義していますが、上記二種の結果は全く同じ出力をするし、記法にも大差ありません。c++ではこのような記法はないので、現代の言語の特徴と言ってもいいのではないかと思います。
admin