본문 바로가기

전체 글28

러스트 공부하기 5일차 #2 러스트가 텍스트를 처리하는 방식 for line in quote.lines() { --> quote는 "문자열" lines()는 텍스트를 한 줄씩 반환. if line.contains(search_term) { --> line은 한줄의 "문자열" contains는 텍스트를 검색. println!("{}", line); } } 인덱스 변수를 자동으로 증가시키기 for(i, line) in quote.lines().enumerate() { if line.contains 배열, 슬라이스, 벡터로 리스트 만들기 세가지 중에 가장 유용한 타입은 벡터다. 벡터를 공부하려면 먼저 배열과 슬라이스라는 두 가지 친척이 있다. 배열 배열 내의 항목은 바꿀 수는 있지만 그 크기는 변경할 수 없다. 배열을 생성하는 방법은 두.. 2022. 11. 13.
러스트 공부하기 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.