Rust “;错误:所需项目已找到';让'”;

Rust “;错误:所需项目已找到';让'”;,rust,Rust,我有一个代码转储,在那里我放了一些生锈代码的例子,以防我忘记了什么。我不断得到错误:预期项,在第41+行中找到“let”。 可能是我的代码结构不正确吗?我只是简单地将学到的代码片段粘贴到main.rs中。我想枚举有某种特殊的格式或位置 我试着改变名字,认为这是名字惯例;但那没用。同样的错误 这里是垃圾场(实际上还没那么大) 您的基本问题是let只能在函数中使用。因此,在main()中包装代码,并修复样式: fn if_statements() { let x = 5; let

我有一个代码转储,在那里我放了一些生锈代码的例子,以防我忘记了什么。我不断得到
错误:预期项,在第41+行中找到“let”
。 可能是我的代码结构不正确吗?我只是简单地将学到的代码片段粘贴到main.rs中。我想枚举有某种特殊的格式或位置

我试着改变名字,认为这是名字惯例;但那没用。同样的错误

这里是垃圾场(实际上还没那么大)


您的基本问题是
let
只能在函数中使用。因此,在
main()
中包装代码,并修复样式:

fn if_statements() {
    let x = 5;

    let y = if x == 5 { 10 } else { 15 };

    if y == 15 {
        println!("y = {}", y);
    }
}

#[allow(dead_code)]
fn add(a: i32, b: i32) -> i32 { a + b }

#[allow(dead_code)]
fn crash(exception: &str) -> ! {
    panic!("{}", exception);
 }

struct Point {
     x: i32,
     y: i32,
}

fn structs() {
    let origin = Point { x: 0, y: 0 };

    println!("The origin is at ({}, {})", origin.x, origin.y);
}

enum Character {
    Digit(i32),
    Other,
}

fn main() {
    let y = (1, "hello");
    let x: (i32, &str) = (1, "hello");

    let ten  = Character::Digit(10);
    let four = Character::Digit(4);
 }

可能重复的想法,你可以使用函数之外的变量,有点像Java,这是真的吗?我认为在Java中不能使用类之外的任何东西。我指的是方法/函数的外部(它们是相同的吗?)。并不意味着在类外..对于那些从声明全局常量的搜索中出来的人:需要的代码是
static y:(i8,&str)=(1,“hello”)。不,您不能让编译器推断类型。我知道这很糟糕。
fn if_statements() {
    let x = 5;

    let y = if x == 5 { 10 } else { 15 };

    if y == 15 {
        println!("y = {}", y);
    }
}

#[allow(dead_code)]
fn add(a: i32, b: i32) -> i32 { a + b }

#[allow(dead_code)]
fn crash(exception: &str) -> ! {
    panic!("{}", exception);
 }

struct Point {
     x: i32,
     y: i32,
}

fn structs() {
    let origin = Point { x: 0, y: 0 };

    println!("The origin is at ({}, {})", origin.x, origin.y);
}

enum Character {
    Digit(i32),
    Other,
}

fn main() {
    let y = (1, "hello");
    let x: (i32, &str) = (1, "hello");

    let ten  = Character::Digit(10);
    let four = Character::Digit(4);
 }