2015-03-22 3 views
6

У меня есть дамп кода, где я помещаю примеры кода ржавчины на случай, если что-то забуду. Я продолжаю получать error: expected item, found 'let' для линии 41+. Мог ли мой код не структурирован должным образом? Я просто приклеил фрагменты кода, о которых я узнал, в main.rs. Я предполагаю, что перечисления имеют какое-то специальное форматирование или место."error: expected item, found 'let'"

Я попытался изменить имена, думая, что это соглашение об именах; но это не помогло. Такая же ошибка.

Вот дамп (не то, что на самом деле большая пока)

#[allow(dead_code)] 


fn main() 
{ 

} 





/////////////////////////////////////////tutorial functoins i made 

fn if_statements() 
{ 
    //let (x, y) = (5, 10); 
    let x = 5; 
    let y = if x == 5 { 10 } else { 15 }; 
     if y == 15 {println!("y = {}", y);} 
} 



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

} 

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


//TUPLES// 
let y = (1, "hello"); 
let x: (i32, &str) = (1, "hello"); 

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

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

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

//ENUMS// 
enum Character { 
    Digit(i32), 
    Other, 
} 

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

возможный дубликат [Что делает «ожидаемый элемент, найденный пусть» означают] (http://stackoverflow.com/questions/28993446/what -does-expected-item-found-let-mean) –

ответ

9

Ваш фундаментальный вопрос в том, что 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); 
} 
+0

думал, что вы можете использовать переменные за пределами функций вроде java –

+1

, это правда? Я не думаю, что вы можете использовать что-либо за пределами класса на Java. –

+0

Я имел в виду сторону методов/функций (они одинаковы?). Не означает, что вне класса .. –

Смежные вопросы