我::和之间的不同感到困惑..它们看起来一样,只是它们的语法不同.
Run Code Online (Sandbox Code Playgroud)let mut guess = String::new(); io::stdin().read_line(&mut guess) .expect("Failed to read line");
在上述情况下,我进入功能new()在String.String::new()和之间有什么区别String.new()?是.只为方法呢?
Dan*_*Dan 20
::我发现和之间的一个有用的区别在方法语法.中显示。
fn当调用a 中的 a 实例时struct,.使用:
struct Rectangle {
width: u32,
height: u32,
}
impl Rectangle {
fn area(&self) -> u32 {
self.width * self.height
}
}
fn main() {
let rect1 = Rectangle {
width: 30,
height: 50,
};
println!(
"The area of the rectangle is {} square pixels.",
rect1.area()
);
}
Run Code Online (Sandbox Code Playgroud)
另一方面,关联函数是不作为self参数的函数。他们没有以下实例struct:
impl Rectangle {
// Associated Function
fn square(size: u32) -> Rectangle {
Rectangle {
width: size,
height: size,
}
}
}
Run Code Online (Sandbox Code Playgroud)
::而是用来调用这些函数。
fn main() {
let sq = Rectangle::square(3);
}
Run Code Online (Sandbox Code Playgroud)
而.用于返回方法(结构实例的函数)。
DK.*_*DK. 10
.当您在左侧有一个值时使用. ::当你有一个类型或模块时使用.
或者:.用于值成员访问,::用于命名空间成员访问.
| 归档时间: |
|
| 查看次数: |
348 次 |
| 最近记录: |