Rustのstructとtraitって似てるよね
κeenです。関連型について考えてたらtraitがstructに見えてきたので一筆。小ネタです。
structは普通の構造体とtupl structと言われる形式二種類あります。
struct Color {
r: u8,
g: u8,
b: u8,
}
struct Color(u8, u8, u8);
traitはというと関連型と型パラメータ二種類あります。
trait Into {
type Item;
}
trait Into<T>{}
インスタンス化も似てます。
// struct
struct Color {
r: 255,
g: 0,
b: 0,
}
struct Color(255, 0, 0)
// trait
struct Dummy;
impl Into for Dummy {
type Item = i8
}
impl Into<i8> for Dummy {}
また、両者の使い分けも名前で参照したいかor手軽に使いたいかで使い分けます。
以上小ネタでした。