NeuroWhAI의 잡블로그

[Rust] in/exclusive range expression and pattern 본문

개발 및 공부/언어

[Rust] in/exclusive range expression and pattern

NeuroWhAI 2018. 8. 25. 15:04



fn main() {
    // exclusive range
    for x in 0..5 {
        print!("{} ", x);
    }
    println!();
    
    // inclusive range
    for x in 0..=5 {
        print!("{} ", x);
    }
    println!();
    
    /*for x in 0...5 {
        print!("{} ", x);
    }
    println!();*/
    //error: `...` syntax cannot be used in expressions
    
    
    let x = 42;
    
    match x {
        0...42 => println!("in [0, 42]"),
        
        //0..=42 => println!("in [0, 42]"),
        // Same with 0...42
        
        //0..42 => println!("in [0, 42)"),
        //error[E0658]: exclusive range pattern syntax is experimental
        
        _ => println!("not in [0, 42]")
    }
}
0 1 2 3 4 
0 1 2 3 4 5 
in [0, 42]

inclusive range = [a, b] = (a <= x <= b) = `a...b` = `a..=b`
exclusive range = [a, b) = (a <= x < b) = `a..b`

`a...b`는 패턴으로만 사용할 수 있고 식으로는 사용할 수 없습니다.
`a..b`는 식으로는 사용할 수 있지만 '아직은' 패턴으로 사용할 수 없습니다.




Comments