Как решить "неразрешенный импорт" в Rust при использовании VS Code? - PullRequest
0 голосов
/ 20 февраля 2020

Я довольно плохо знаком с ржавчиной и слежу за официальной книгой, которую они предоставляют на своем сайте. Во второй главе они советуют вам импортировать автомобиль «Рэнд» go, что я и сделал. Однако, когда я пытаюсь запустить свой код напрямую через VS Code, я получаю сообщение об ошибке «unresolved import rand». Когда я запускаю его через командную строку, все работает нормально. Я уже испробовал все предложенные здесь решения: https://github.com/rust-lang/rls-vscode/issues/513 и, похоже, ничего не помогло. Используемые мной расширения:

  • Лучше TOML
  • Автомобиль go
  • Code Runner
  • Rust (rls)
  • Rust Assist
  • против c -rustfmt
  • vscode-rust-syntax

Кто-нибудь еще сталкивался с подобной проблемой или знает решение? Спасибо!

Редактировать: My Car go .TOML выглядит так:

[package]
name = "guessing_game"
version = "0.1.0"
authors = ["Name <MyNameHere@gmail.com>"]
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
rand = "0.6.0"

Редактировать 2: мой файл main.rs выглядит так:

use rand::Rng;
use std::io;
use std::cmp::Ordering;

fn main()
{
    println!("Guess the number!");
    let secret_number = rand::thread_rng().gen_range(1, 101);
    loop
    {
        println!("Please input your guess!");
        let mut guess = String::new();
        io::stdin().read_line(&mut guess).expect("Failed to read line!");
        let guess: u32 = match guess.trim().parse()
        {
            Ok(num) => num,
            Err(_) => continue,
        };
        println!("Your guess {}", guess);
        match guess.cmp(&secret_number)
        {
            Ordering::Less => println!("Too small!"),
            Ordering::Greater => println!("Too big!"),
            Ordering::Equal =>
            {
                println!("You win!");
                break;
            }
        }
    }
}

1 Ответ

0 голосов
/ 01 марта 2020

Получил исправление!

В VS C выберите Расширения, выберите расширение Code Runner, щелкните маленький символ шестеренки и выберите Настройки расширений. Это параметр Code-runner: Executor Map, который необходимо изменить. Нажмите на ссылку «Изменить в настройках. json».

Добавьте в файл следующее:

"code-runner.executorMap": {
       "rust": "cargo run # $fileName"
     }

Если у вас уже есть содержимое в файле настроек. json Файл, запомните добавить запятую в строку выше и поместить ваши правки в крайние фигурные скобки, например,

{
    "breadcrumbs.enabled": true,
    "code-runner.clearPreviousOutput": true,   <== added comma
    "code-runner.executorMap": {
        "rust": "cargo run # $fileName"
      }
}

Это говорит Code Runner использовать команду 'car go run' вместо 'rust c '

Это исправление пришло из этого вопроса для stackoverflow.

...