< 返回版块
jgl666
发表于 2018-04-03 12:49
Tags:这里mut 放在参数stream前面什么意思?是强制把不可变变成可变吗,这和放在:后面有什么区别?
fn handle_connection(mut stream: TcpStream) {
let mut buffer = [0; 512];
stream.read(&mut buffer).unwrap();
println!("Request: {}", String::from_utf8_lossy(&buffer[..]));
}
评论区
写评论函数参数的mut,只是代表了在函数体内,这个变量需要可变,是一个声明,表示必须传入一个可变的变量,并不能改变传入变量的可变性。
谢谢 修饰变量可变性是不是传入的参数原来是不可变的 修改后这个变量的属性就是可变的了 像下面一样 不加mut修饰这个变量是不可修改的
fn test(mut x: String) { x.push('o'); println!("{}", x); }
fn main() { let m = String::from("hello"); test(m); }
mut 是用来修饰变量可变性的,所以是放在变量前面
mut 放在冒号后面,也就是用来修饰类型的时候,只是用在可变引用&mut T和裸指针*mut T上,并不能直接放在类型前面
mut 是用来修饰变量可变性的,所以是放在变量前面 mut 放在冒号后面,也就是用来修饰类型的时候,只是用在可变引用&mut T和裸指针*mut T上,并不能直接放在类型前面