[英]Why do I have to declare methods outside a struct in Rust?
為什么在結構外部創建方法?
在像C#這樣的語言中,您可以在結構中添加方法。 我知道在C和C ++這樣的語言中你有頭文件所以它有意義,但據我所知,我無法在Rust中創建頭文件。
在大多數語言中,“方法”只是一些語法糖。 你實際上沒有一個對象並調用它的方法,你有一個函數,它接受對該對象的引用,然后用它做一些東西。 與常規函數相比,使用點表示法隱式傳遞對象的引用。
struct Foo {
//...
}
impl Foo {
fn do_something(self: &Self) { //"self: &Self" is a more verbose notation for "&self"
//...
}
}
所以這樣稱呼它
my_foo.do_something();
基本上是一樣的
Foo::do_something(&my_foo);
我認為Rust開發人員做出的決定是讓結構更加清晰,結構只不過是一組數據。
這也是允許現有類型的特征實現的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.