let addr = "239.255.255.250:1982";
let socket = UdpSocket::bind(addr).unwrap();
let message = "some message".as_bytes();
socket.send_to(message, addr).unwrap();
Run Code Online (Sandbox Code Playgroud)
此代码为最后一行提供以下错误:
Error { repr: Os { code: 49, message: "Can\'t assign requested address" } }
Run Code Online (Sandbox Code Playgroud)
那为什么会这样?
编辑:我尝试了以下建议:
let addr = "239.255.255.250:1982";
let socket = UdpSocket::bind("127.0.0.1:34254").unwrap();
let message = "some message".as_bytes();
socket.send_to(message, addr).unwrap();
Run Code Online (Sandbox Code Playgroud)
但不幸的是,这并没有改变任何事情.
我想要的基本上是对列表的O(n ^ 2)迭代.假设我有两个整数的列表,
let list = [2312, 8000, 3456, 7000, 1234]
Run Code Online (Sandbox Code Playgroud)
以及检查是否将两个整数加在一起会产生高于20000的结果的函数(这可能是一个任意函数,它接受两个整数并返回一个布尔值).
myPredicate :: Int -> Int -> Bool
myPredicate x y = x + y > 10000
Run Code Online (Sandbox Code Playgroud)
有没有办法将此谓词应用于上面的列表,以获取包含有效对的列表列表,如下所示:
>> filter myPredicate list
>> [[2312, 8000], [3456, 8000], [3456, 7000], [8000, 7000]]
Run Code Online (Sandbox Code Playgroud) 我的部分代码如下所示:
print_usage_instructions();
print!("Command: ");
let stdin = io::stdin();
let mut line = String::new();
stdin.lock().read_line(&mut line).expect("Couldn't process the command.");
println!("{}", line);
Run Code Online (Sandbox Code Playgroud)
我期望的行为是这样的:
Usage instructions and stuff
Command: [my command]
[my command]
Run Code Online (Sandbox Code Playgroud)
但是,会发生什么:
Usage instructions and stuff
[my command]
Command: [my command]
Run Code Online (Sandbox Code Playgroud)
任何想法为什么会发生?AFAIK,编译器没有理由在这里更改执行顺序,这部分代码不是异步也不是多线程.
我有这段代码,我尝试将命令行参数转换为整数.问题是,变量width和height应该是不可变的,因为我不打算改变它们.有没有什么方法可以使用匹配let width = {match....},并在一个步骤中将它们初始化为不可变变量,而不是给它们一个默认值并改变它们?我相信这会更安全,更有效率.
let args: Vec<String> = env::args().collect();
let width_arg = &args[1];
let height_arg = &args[2];
let mut width = 0;
let mut height = 0;
match width_arg.parse::<i32>() {
Ok(w) => width = w,
Err(_) => ask_for_number(),
}
match height_arg.parse::<i32>() {
Ok(h) => height = h,
Err(_) => ask_for_number(),
}
Run Code Online (Sandbox Code Playgroud) rust ×3
algorithm ×1
haskell ×1
immutability ×1
mutability ×1
rust-macros ×1
sockets ×1
udp ×1
variables ×1