1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use std::ops::Range;
fn gav(x: i32, y: i32) -> i64 {
    (x - y) * (x + y)
}
fn main() {
    let num: i32 = 5;
    let a: Vec<i32> = vec![1, 2, 3];
    let b: Option<i32> = Some(2);
    let c: Option<{unknown}> = None;
    let d: Range<i32> = Range { start: 1, end: num };
    let e: Range<i32> = 1..num;
    let f: String = "sssss".to_string();
    for a: i32 in d {
        for b: i32 in e {
            let c: i64 = gav(x:gav(x:a, y:b), y:a);
            assert_eq!(gav(a, b), a * a - b * b);
        }
    }
    let f: i32 = d: Range<i32>
        .reduce(|a: i32, b: i32| {
            println!("{}", a);
            a * b
        }): Option<i32>
        .unwrap();
}
Enter to Rename, Shift+Enter to Preview