본문 바로가기

Rust7

[example] Rust min, max (최소값, 최대값 구하기) 목차 두 개의 값을 비교하기. 여러 개의 값들 중 최대 최소 구하기. ( 배열 ) 두 개의 값을 비교하기. 두 개의 값을 비교하는 방법으로는 두 가지 방법이 있는데요. 첫 번째로 cmp crates의 min, max 함수를 이용하는 방법입니다. 두 수를 비교해서, 큰 값, 작은 값을 반환해 줍니다. Tuple과 Array도 비교 가능하지만, 아쉽게도 Floating point Type은 지원하지 않습니다. 두 번째로, 객체 내장 함수를 통해 비교하는 방식입니다. 객체 값 a와 입력값 b를 비교해 큰 값, 작은 값을 반환해 줍니다. 이 방법 역시 Tuple과 Array도 비교 가능합니다. 여러 개의 값들 중 최대 최소 구하기. 여러 개의 값들 중 최대 최소를 구하는 방법으로는 세 가지가 있습니다. 최대값을.. 2021. 6. 25.
[example] Rust 표준입력, 한줄로 받은 입력 나누기 목차 공백으로 구분되어 있는 입력을 정수 벡터로 바꾸기. 연속된 정수를 정수 벡터로 바꾸기. 공백으로 구분되어 있는 입력을 문자열 벡터로 바꾸기. 연속된 문자열을 문자 벡터로 바꾸기. 공백으로 구분되어 있는 입력을 정수 벡터로 바꾸기. 연속된 정수를 정수 벡터로 바꾸기. 공백으로 구분되어 있는 입력을 문자열 벡터로 바꾸기. 연속된 문자열을 문자 벡터로 바꾸기. 요즘 Rust를 연마하기 위해 백준에서 문제를 푸는데요, 표준 입력받는 것부터가 간단하지 않더군요. 시작부터 쉽지 않았습니다. ㅜ_ㅜ 여러분께도 도움이 되었으면 좋겠습니다. 감사합니다. *피드백은 댓글로 남겨주세요.* 2021. 6. 20.
Rust 메모리관리와 Ownership 목차 Ownership ( 소유권 ) 등장 배경 Ownership ( 소유권 ) 동작원리 모든 변수에서 Ownership Move ( 소유권 이동 )이 발생할까? Ownership ( 소유권 )과 함수 Ownership ( 소유권 ) 등장 배경 동적 할당으로 인한 메모리 누수 문제를 다른 언어에서는 다음과 같이 대응했습니다. C/C++ : "메모리 관리, 그거 프로그래머 실력이야!" Java, Python 등 : "성능이고 나발이고 우린 Garbage Collector 쓸래." C/C++에서는 문제를 방관했고, Java는 성능을 어느 정도 포기하고 개발의 편리함을 선택했습니다. 하지만 Rust에서는 조금 다른 방식으로 접근했습니다. Rust : "동적 할당 변수도 지역변수처럼 사용하면 메모리 누수 문제를.. 2021. 6. 16.
Rust 함수, 제어문 목차 Statements와 Expressions Function : Parameter와 Return value Control Flow ( 제어문 ) Statements와 Expressions Rust에서 함수를 이해하기 위해선, 먼저 Statements ( 구문 )와 Expressions ( 표현식 )의 개념을 이해해야 합니다. Statements와 Expressions는 무엇일까요? Statements : 어떤 동작을 수행하고, 반환 값이 없는 명령들. ( ';' 있음, 반환 값이 없으므로 r-value 불가 ) Expressions : 결괏값을 산출해 반환해주는 식.( ';' 없음 ) 이렇게만 이야기하면 이해가 잘 안 가실 것 같습니다. 저도 그랬습니다. 예제를 살펴보기 전에, '{ }' ( scop.. 2021. 6. 15.
Rust 변수,상수, 데이터 타입 목차 immutable variable ( 불변 변수 ) const vs immutable ( 상수 vs 불변 변수 ) Type annotation ( 타입 부연 설명 ) Data type ( 데이터 타입 ) immutable variable ( 불변 변수 ) 먼저 다른 언어와의 차이점을 보겠습니다. 변수 Rust C Java Python 언어타입 정적 정적 정적 동적 선언식별자 let int, void 등 int, void 등 없음 Default immutable(불변) mutable(가변) mutable(가변) mutable(가변) 상수식별자 const const final 없음 ※ 정적 타입 언어 : 컴파일 시 변수 타입이 정해져야 함. ※ 동적 타입 언어 : 런타임 동안 변수 타입이 정해짐. le.. 2021. 6. 14.
Rust 프로젝트, 컴파일, 빌드, 릴리즈 목차 cargo 프로젝트 만들기 빌드 그리고 실행하기 Cargo.toml 그리고 dependency 컴파일하기 릴리즈를 위한 빌드 cargo cargo( 카고 )는 Rust의 빌드 시스템이자 패키지 매니저입니다. cargo를 통해 프로젝트를 만들고, 컴파일, 빌드, 실행, 라이브러리 다운로드 등 여러 가지 일을 편리하게 할 수 있는 강력한 툴입니다. 오늘은 cargo의 간단한 사용법을 알아보겠습니다. 프로젝트 만들기 프로젝트를 만들 디렉토리로 간 후, 아래의 명령어를 입력해주세요. cargo new [프로젝트 이름] 빌드 그리고 실행하기 프로젝트의 디렉토리로 들어간 후, 다음 명령어를 입력해주세요. cargo build 또는 cargo run Cargo.toml 그리고 dependency Cargo.to.. 2021. 6. 12.