0
use std::io::Read;
use std::net::TcpListener;
struct Server<'a> {
ip_addr: &'a str,
}
impl<'a> Server<'a> {
fn receive(&self) {
let mut received_message_buf: [u8; 100];
let tcp_listener = TcpListener::bind(self.ip_addr).unwrap();
tcp_listener.accept().unwrap().0.read(&received_message_buf);
}
}
fn main() {}
我越來越不匹配的類型:預期與MUT [U8]調用時閱讀::閱讀
<anon>:13:47: 13:68 error: mismatched types:
expected `&mut [u8]`,
found `&[u8; 100]`
(values differ in mutability) [E0308]
<anon>:13 tcp_listener.accept().unwrap().0.read(&received_message_buf);
^~~~~~~~~~~~~~~~~~~~~
我不得不初始化received_message_buf,但它的工作。 –
是的。沒有注意到該變量已初始化。初始化變量總是一個好主意,因爲Rust沒有C的「魔術自動歸零」規則。 – krzysz00
@ krzysz00「魔術自動歸零法則」?最後我檢查了一下,本地變量*沒有初始化爲C中的任何內容。這是Rust試圖阻止您使用未初始化的值的示例,否則會導致您在C中佔用您的位置。 – Shepmaster