본문 바로가기

IT 일기/러스트(Rust) 노트4

러스트 공부하기 5일차 #1 참조 사용 fn main() { let a = 42; let r = &a; --> 참조 연산자 let b = a + *r; --> 역참조 연산자 pritnln("a + a = {}", b); for item in &haystack { if *item == needle { println!("{}", item); } } 고급 함수 정의 명시적인 수명 애너테이션 fn add_with_lifetimes(i: &'a i32, j: &'b i32) -> i32 { *i + *j } -는 두 개의 수명 변수 'a와 'b를 add_with_lifetimes() 범위 안에 선언한다. 수명 a, 수명 b라고 한다. -i: &'a i32는 수명 변수 'a를 i의 수명으로 바인드한다. 이 구문은 "매개 변수 i는 수명 a를 .. 2022. 11. 13.
러스트 공부하기 4일차 흐름 제어 반복문에서 item을 수정해야 하는 경우 mut키워드를 써야 가변 참조로 사용할 수 있다. ex)for item in &mut collection for item in collection for item in &collection for item in &mut collection 지역변수를 사용하지 않는 경우 for _ in 0..10 { } for i in 0..collection.len() { let item = collection[i]; } --> 잘 사용하지 않는 방법 -->index를 계속 확인해야 해서 좋지 않다고 한다. for n in 0..10 { if n % 2 == 0 { continue; } } while (Instant::now() - start) < time_limit .. 2022. 11. 9.
러스트 공부하기 3일차 변수 정의와 함수 호출 러스트에서는 아래와 같이 변수를 선언할 때, 자료형과 비트를 포함한 내용을 포함한다. ①let a = 10; --> 컴파일러가 추론 ②let b: i32 = 20; --> 프로그래머가 지정 ③let c = 30i32; ④let d = 30_i32; --> 가독성을 위해서 언더바(_)를 사용할 수 있다고 한다. ⑤fn addprin(i: i32, j: i32) -> i32 { i + j } -->함수 정의에는 타입 선언이 반드시 있어야 된다고 한다. 이진, 팔진, 십육진법을 이용하는 정수 let three = 0b11; --> 이진수 let thirty = 0o36; --> 팔진수 let three_hundred = 0x12C; --> 십육진수 자료형과 비트 표현 i8, i16, i.. 2022. 11. 8.
오늘부터 러스트 공부 시작 시스템 프로그래밍에 주로 사용되고 있다는 러스트 공부를 오늘부터 시작하게 되었다. 코틀린을 공부할 때는 블로그에 내용을 하나도 남기지 못했는데 러스트 공부부터는 공부한 내용을 블로그에 남기고자 한다. 그래도 코틀린은 아직 더 배우고 싶은 내용이 있어서 책을 한 권 더 샀으니 그 내용이라도 나중에 함께 공유할 수 있었으면 좋겠다. 러스트를 공부하게된 계기는 주니어 개발자로서 여러 프로그래밍 언어를 공부하고 싶다는 생각이 들었다. 고수준의 언어를 공부하다 보면 저수준의 언어도 공부해보고 싶은 욕구가 생긴다. 러스트는 C++을 대신할 언어로서 보다 효율적이고 안정적으로 사용할 수 있는 기능들이 있다고 한다. 스택 오버플로우에서는 꽤 오랫동안 러스트가 인기를 받고 있는 언어라고 하며 유명한 구글이나 페이스북, .. 2022. 11. 3.