Rust(r3 Blame)

r3
r2
1{{{#!syntax rust
2fn main() {
3 println!("hello, world!");
4}
5}}}[[https://crates.io|[[파일:홈페이지 아이콘.svg|width=25px]]]],,crates.io,,[* rust계의 npm] [[https://github.com/rust-lang/rust|[[파일:GitHub 아이콘 light.svg|width=25px&theme=light]]]][[https://github.com/rust-lang/rust|[[파일:GitHub 아이콘 dark.svg|width=25px&theme=dark]]]],,github,,
6메모리 안전성을 중요시 여기는 언어이다. 모질라 제단에서 관리하다가 러스트 제단으로 넘어왔다.
7
8페리스라는 마스코트가 있다.
9== 특징 ==
r3
10=== 소유권 ===
11러스트를 배울 때 나오면 가장 때려치고 싶게 만드는 원흉. 메모리를 바로바로 혜지하는 언어 특성상 소유권은 메우 중요한 계념이다.
12==== 스코프 ====
13가장 중요한 계념 중 하나는 스코프[* {랑 }사이] 밖을 벗어나면 스코프 안에서 정의된 변수는 사용할 수 없다인데 예를들어{{{#!syntax rust
14fn main () {
15 {
16 let a = "앙되 내 수명은 여기까지야";
17 }
18 println!("{a}");
19}
20}}}를 실행하면 컴파일 에러가 난다.[* 런타임 에러가 아니다!]
21==== 함수에 넘기기 ====
22또한 어떤 함수에 인자로 값을 넘기면 그 값의 소유권은 만료된다.{{{#syntax rust
23fn main() {
24 let a = "앙되 내가 함수의 인자로 들어감으로서 이 함수로 돌아오지 못하게 되었어."
25 소유권은내것(a);
26 println("{a}")
27}
28fn 소유권은내것 (a:&str) {
29}
30}}}이를 실행해도 컴파일 에러가 나는데 a를 함수에 넘긴 다음에 사용하려 하였기 때문이다. 이럴 때는 to_owned(), clone()등을 써서 값을 복사함으로서 해결할 수 있지만 더 좋은 방법이 있다.
31==== &참조자 ====
32어떤 함수의 값을 넘길 때
33{{{#syntax rust
34fn main() {
35 let a = "참조자를 사용함으로서 나는 여전히 살아있다고."
36 소유권좀_빌려주세요(&a);
37 println("{a}")
38}
39fn 소유권은내것 (a:&&str) {
40}
41}}}이렇게 함수에 넘길 때 참조자를 사용하면 소유권을 유지할 수 있다. [* 사실 &str은 이미 참조자가 붙어있어서 상관없긴 하지만 예시는 예시로만 보도록 하자~~???:선생님 예시가 이상해요~~]
42== 그 외 ==
r2
43 * 컴파일 언어이다.
44 * 컴파일 시간에 대부분의 런타임 에러를 잡아낸다.