给别人做网站挣钱,满天星建设网站,网站源码 下载,wordpress前端会员中心开发教程文章目录 functionmethedAssociated Functions 参考资料 一句话总结#xff1a; function和methed很多都是相同的。 不同点在于#xff1a;
methed定义在结构体里面#xff0c;并且它的第一个参数肯定是self#xff0c;代表结构体实例。方法需要用实例名.方法名调用当然结… 文章目录 functionmethedAssociated Functions 参考资料 一句话总结 function和methed很多都是相同的。 不同点在于
methed定义在结构体里面并且它的第一个参数肯定是self代表结构体实例。方法需要用实例名.方法名调用当然结构体里面的函数也可以没有self关键字该函数被称为关联函数可以通过结构体名::函数名的方式调用。 详细介绍接用法请看下文。
function
1、使用fn关键字声明。 2、使用snake case(下划线)命名风格。 3、rust语言中function只要定义了就行不管它在调用位置前定义或者在调用位置之后。如下
fn main() {println!(Hello, world!);another_function();
}fn another_function() { // 采用snake case命名风格println!(Another function.);
}4、statements是语句用于执行一些指令但是没有返回值所以不能用于赋值。比如不能有这样的语句 xy6这是因为赋值操作是没有返回值的。 5、expression是表达式它是有返回值的。 6、对于一个代码块如果最后一行代码使用分号结尾了则表明这是一条语句是不能作为返回值的。如果没有分号结尾则可以作为函数返回值。
fn main() {println!(Hello, world! {}, another_function(10))
}// define after main
fn another_function(i:i32) - i32 { // snake case styleprintln!(Another function.i{i}, i{}, i); // print variablei 1 // expression as return value
}7、function可以使用return在函数中间返回也可以直接在函数结束时通过expression返回。
methed
1、使用fn关键字声明。 2、第一个参数必须是self。 3、可以有和属性名一致的方法名。 4、一个结构体可以有多个impl代码块。
Associated Functions
1、所有定义在impl代码块里面的都叫关联函数。一个结构体可以有多个impl代码块。 2、关联函数的参数也可以没有self,此时我们就需要用::去调用这个方法。
fn main() {let animal Animal::new(2, Lion);animal.say_hello();
}struct Animal {age:u32,name:static str,
}impl Animal {// associated functionfn new(age:u32, name:static str) - Self {Animal { age, name } // expression as return value}// methodfn say_hello(self) {println!(Hello, my name is {} and I am {} years old., self.name, self.age);}
}参考资料
Functions Method Syntax