Rust 您何时使用::以及何时使用。锈迹斑斑?
在玩铁锈游戏时,我遇到了:Rust 您何时使用::以及何时使用。锈迹斑斑?,rust,Rust,在玩铁锈游戏时,我遇到了: 什么时候使用:,如第一行,什么时候使用,,如第二行?用语法调用的方法被调用(或仅仅是方法),而用:语法调用的方法被调用。主要区别在于实例方法采用某种形式的self作为参数,而相关函数则不采用 您可以将的实现作为关联函数进行检查: pub fn today()->日期{ Local::now().date() } 与之相比: fn ymd(&self,年:i32,月:u32,日:u32)->日期{ self.ymd_opt(年、月、日).unwrap() } 然而,
什么时候使用
:
,如第一行,什么时候使用,,如第二行?用
语法调用的方法被调用(或仅仅是方法),而用:
语法调用的方法被调用。主要区别在于实例方法采用某种形式的self
作为参数,而相关函数则不采用
您可以将的实现作为关联函数进行检查:
pub fn today()->日期{
Local::now().date()
}
与之相比:
fn ymd(&self,年:i32,月:u32,日:u32)->日期{
self.ymd_opt(年、月、日).unwrap()
}
然而,这里需要注意的是,Local.ymd
实际上是作为Timezone
特性的一部分实现的,该特性是Local
这里需要注意的另一点是,Local
是一个没有字段的结构。这意味着它可以像Local{}
那样创建,甚至可以仅仅是Local
我认为您应该强调最后一点。这就是语法令人惊讶的地方:Local.foo
vsLocal::bar
。
extern crate chrono; // 0.4.6
use chrono::TimeZone;
fn main() {
println!("{}", chrono::Local::today());
println!("{}", chrono::Local.ymd(2019, 1, 1));
}