为什么 Rust 在函数调用中不自动加引用和 mut,而在method中自动这样做?
2023-05-13 阅读 53
在 Rust 中,函数和方法之间有一些区别。方法是绑定到结构体或枚举类型上的函数,而函数则是独立的。因此,方法可以访问结构体或枚举类型的数据,而函数不能。
在 Rust 中,函数参数默认是不可变的,因此如果想要修改参数的值,需要使用 `mut` 关键字。而方法默认是可变的,因为它们可以访问结构体或枚举类型的数据,并且通常需要修改这些数据。因此,方法参数默认是可变的。
在函数调用中不自动加引用和 `mut` 是因为 Rust 的设计哲学是尽可能避免隐式的操作,而是让代码更加明确和可读。如果 Rust 在函数调用中自动加上引用和 `mut`,可能会导致代码的含义不清晰,增加代码的复杂度和可读性。而在方法中自动加上引用和 `mut` 是因为方法通常需要访问和修改结构体或枚举类型的数据,这是一种常见的操作,因此 Rust 在方法中自动加上引用和 `mut` 可以简化代码。
更新于 2023年05月20日