小编Ale*_*aya的帖子

为什么当我输入“停止”时循环没有中断

为了用 Rust 语言练习结构,我决定创建一个程序来打印你输入的数字的幂。该程序应该可以运行,直到您输入“stop”,但是有一个问题:当我输入“stop”时,循环不会中断并且我的程序在尝试将字符串“stop”转换为数字后崩溃。如何解决?

//Power of number
struct Number{
    number_itself: i32,
    power: i32,
}
fn main(){
    loop{
    let mut number = String::new();
    let mut Power = String::new();
    io::stdin().read_line(&mut number).expect("Hren kakaya-to");
    io::stdin().read_line(&mut Power).expect("Huyeta");
    if number==String::from("stop") || Power==String::from("stop"){
        break;
    }
    let number_int:i32 = number.trim().parse().expect("Ne vyshlo");
    let power_int:i32 = Power.trim().parse().expect("Hren' vyshla");
    let powernum = Number{
        number_itself:number_int,
        power:power_int,
    };
    println!("{}",powernum.number_itself.pow(powernum.power as u32));
}
}```
Run Code Online (Sandbox Code Playgroud)

loops rust

0
推荐指数
1
解决办法
81
查看次数

类型 '()' 不能被取消引用

有人能解释一下为什么它说它*profession是一个单位类型而它是一个向量吗?

use hashbrown::HashMap;

fn main() {
    let mut sphere: HashMap<String, Vec<&str>> = HashMap::new();
    sphere.insert(String::from("junior"), vec![]);
    sphere.insert(String::from("Middle"), vec![]);
    sphere.insert(String::from("Senior"), vec![]);
    loop {
        println!();
        let mut input = String::new();
        std::io::stdin()
            .read_line(&mut input)
            .expect("What the hell this doesn't work!?");
        if input.trim() == "stop" {
            break;
        }
        let splited_data: Vec<&str> = input.split(" to ").collect();
        let person = splited_data[0];
        let category = splited_data[1].to_string();
        let professions = sphere.entry(category.to_string()).or_insert(vec![]);
        *professions.push(person);
    }
}
Run Code Online (Sandbox Code Playgroud)
error[E0614]: type `()` cannot be dereferenced
  --> src/lib.rs:21:9
   |
21 |         *professions.push(person);
   | …
Run Code Online (Sandbox Code Playgroud)

hashmap rust

0
推荐指数
1
解决办法
91
查看次数

标签 统计

rust ×2

hashmap ×1

loops ×1