@는 if로 바꿔 쓸 수 있는데위 문장을 아래처럼 바꿔 쓸 수 있다.Option에서도 guard를 쓸 수 있는데 위 예제처럼 Some(n @ 42) 형태로 사용하면 된다.
위 코드를 while let 을 이용해 아래와 같이 바꿀 수 있다.
Closure 는 1회용 function이라고 생각하면 된다. 기본 형태는 || 을 인자로 받아서 리턴하는 형태이며, 타입지정이 의무는 아니다.function과 같은 기능을 하지만 function에서 할 수 없는 Capturing 이 가능하다. Capturing 은 함
Fn 은 captured value를 레퍼런스 형태로 가져온다. &T FnMut 는 captured value를 수정 가능한 레퍼런스로 가져온다. &mut T FnOnce 는 captured value를 값 그대로 가져온다. T 위 함수를 이해하는데 시간이 조금 걸렸는
self 는 자신이 속한 module을 말한다.super 는 부모의 module을 말한다.가장 최상위 module은 crate 다.
위와 같은 파일 구조로 되어있을 때split.rs 파일 안에 다음과 같이 작성되어 있다면my라는 폴더나 파일을 찾을 것이고그 안에서 mod.rs 파일에 있는 코드들을 가져온다.mod.rs 파일 안에 다음과 같이 작성되어 있다면inaccessible 이라는 폴더나 파일을
Generic은 타입을 특정 짓지 않고 어떤 타입이든 될 수 있게 설정하는 것을 말한다.위 예시에서 가장 마지막에 있는 코드를 보면 앞에 <T> 가 추가되어 있다.만약 앞에 <T> 가 추가되어 있지 않다면, 다른 것들과 마찬가지로 Genric이 아닌 T라는
한 시점에 오직 하나의 mut ref 만 존재해야 한다.컴파일러는 한 문장이 아닌 코드 전체 문맥에 따라 mut ref의 갯수를 결정한다.immutable reference는 무수히 많아도 상관 없다.immut ref과 mut ref은 공존할 수 없다.(immut re
ref 와 & 는 같은 표현이다. 아래 코드에서도 첫 번째는 ref 를 사용하고 두 번째는 & 를 사용했지만 결국 같은 의미다. 같은 의미인데 굳이 다른 표현이 존재하는 이유는 무엇일까?point 를 다시 destruct하면서 point.x 값을 ref 로 받아오고 있
오늘 예제에서 나온 여러 메소드들을 정리하고자 한다. trim 메소드는 앞, 뒤의 공백을 모두 제거해준다.parse는 타입을 바꿔주는 메소드다. 아래 예제를 보면 &str 인 "4"를 앞에서 지정한 u32 타입으로 바꿔주는 것을 볼 수 있다.unwrap은 Ok를 값으로
Trait을 함수의 파라미터로 가져올 수 있으며, 아래 예제들은 형태는 다르지만 모두 Summary Trait을 implement 하는 item 을 인자로 받아오고 있다.추가적으로 여러 Trait을 가져올 경우 아래처럼 쓸 수 있다.
모든 변수와 함수는 생명주기를 가진다. 컴파일러는 변수와 함수 및 레퍼런스의 생명주기를 판단하고 시간적 관점에서 논리적 오류가 없는지 확인한다.Lifetime 은 시간적 측면에서의 Generic이라고 할 수 있다. 일반적으로 Generic은 u32, i32, 공통의 타
🚨 공부한지 얼마 되지 않았기 때문에 틀린 내용이 있을 수 있습니다. String 으로 데이터를 만들면 String이라는 타입 그 자체는 Stack에 저장되고, String 타입이 가리키는 주소를 가면 Heap 에 실제 데이터가 저장되어 있다.&String 은 단순히
Closure는 함수와 같은 기능을 하지만 다른 점이 있다.argument를 소괄호( )가 아닌 | | 을 통해 받는다.코드가 한 줄일 때 중괄호 { } 를 생략할 수 있다.외부의 변수(variable)를 사용할 수 있다.가장 큰 차이점은 3번이다. 다른 언어
🚨 현재 공부하고 있는 내용으로 틀린 내용이 있을 수 있습니다. iterator 는 vector, 배열 등에서 반복적으로 무언가를 수행할 때 용이하게 사용할 수 있는데, 종류로는 크게 3가지가 있다. .iter() -> reference의 형태로 iterator
(수정중)Rust에서 매크로는 다른 코드를 작성할 수 있게 하는 코드를 말한다. 함수랑은 다르게 뒤에 !를 붙인다.다른 점이 이것밖에 없나?Declarative macros인자를 받아서 코드를 작성하는 매크로. macro_rules! 라는 매크로로 만들어진다.(매크로를