DevSight

Objects and behavior, Rust vs. C#

프로그래밍 언어인 Rust와 C#을 OOP 관점에서 비교해 보았다. Rust는 OOP라기보다는 모듈/함수 지향형 프로그래밍 언어라고 보는 게 더 합당하다고 생각한다. What does “Rust & OOP” mean to you?

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
29
30
31
32
33
34
35
36
37
struct Door {
    is_open: bool,
}

trait Openable {
    fn new(is_open: bool) -> Door;
    fn open(&mut self);
    fn foo1(txt: &str);
    fn foo2(&mut self);
}

impl Openable for Door {
    fn new(is_open: bool) -> Door {
        Door { is_open: is_open }
    }

    fn open(&mut self) {
        self.is_open = true;
    }

    fn foo1(txt: &str) {
        println!("{} {}", "Print foo ...", txt);
    }

    fn foo2(&mut self) {
        Self::foo1("2");
    }
}

fn main() {
    let mut door = Door::new(false);
    println!("{}", if door.is_open { "참" } else { "거짓" });
    door.open();
    println!("{}", if door.is_open { "참" } else { "거짓" });
    Door::foo1("1");
    door.foo2();
}
Read More ···