반응형

Programming Language 10

Rust 반복문 loop, while, for로 작성해보기

러스트의 반복문 러스트에는 loop, while, for 세 종류의 반복문이 있습니다. 우선 loop 부터 살펴봅시다. loop loop 키워드는 C언어의 while(1)과 같이 동작합니다. 브레이크 포인트가 loop 블록을 무한 반복합니다. fn main() { loop { println!("loop!"); } } 위 코드를 종료하려면 ctri + c로 강제 종료해야 합니다. Rust에서는 break 키워드로 반복문을 탈출 할 수 있습니다. 또한 break 뒤에 반환하고자 하는 값을 넣으면 결과를 반환할 수도 있습니다. 예시로 loop를 사용해 피보나치 수를 구하는 프로그램을 만들어봅시다. fn main() { let mut fib = 0; let mut prev = 0; let mut curr = 1..

Rust 2022.10.24

Rust if 표현식 - 흐름 제어문[1]

if 표현식 Rust도 다른 언어들과 마찬가지로 if를 사용하여 조건에 따라 코드를 실행시킬 수 있습니다. fn main() { let number = 3; if number < 5 { println!("5 미만입니다."); } else { println!("5 이상입니다."); } } if의 조건식은 반드시 bool 이어야 합니다. 다른 언어들은 정수값을 넣거나 객체를 넣어도 동작을 하지만 Rust는 동작을 하지 않습니다. fn main() { let number = 3; if number { // 에러! expected `bool`, found integer. println!("number는 3입니다."); } } else와 else if else와 else if를 사용해 여러 조건을 처리할 수 있습..

Rust 2022.10.18

Rust 함수 작성법

함수 러스트에서 함수를 선언할 때는 fn 키워드를 사용합니다. 러스트는 변수명이나 함수명을 snake case로 작성합니다. fn main() { println!("Hello, world!"); another_function(); } fn another_function() { println!("Another function."); } 함수는 매개변수(parameter)를 가질 수 있습니다. 매개변수의 타입을 명시적으로 선언해야합니다. fn main() { another_function(5); } fn another_function(x: i32) { println!("The value of x is: {}", x); } another_function의 매개변수 x는 i32타입입니다. 구문과 표현식 여기서부..

Rust 2022.10.12

Rust 데이터 타입(Data Types)

러스트의 데이터 타입은 크게 스칼라 타입(Scalar Types)과 복합 타입(Compound Types)으로 분류할 수 있습니다. 러스트는 타입이 고정된(statically tyled) 언어이기 때문에 컴파일 시점에 모든 데이터타입을 컴파일러에게 알려주어야 합니다. 스칼라 타입 스칼라 타입은 단순히 한 가지의 값을 가지고 있는 것입니다. Rust에는 정수, 부동소수점, booleans, 문자 이렇게 4가지의 기본 타입이 있습니다. 정수 러스트에서 정수는 128비트 정수까지 사용 가능합니다. isize와 usize는 실행되는 컴퓨터 환경에 따라 결정됩니다. 정수형 리터럴은 다음과 같이 작성 가능합니다. 부동소수점 러스트의 부동소수점은 f32와 f64 두가지의 크기로 사용할 수 있습니다. 기본 타입은 f6..

Rust 2022.10.11

Rust 변수의 가변성(mutable)과 상수(const)

변수 Rust에서 변수는 기본적으로 불변(immutable)입니다. 러스트에서는 안정성을 추구하는데 그것을 위해서 변수는 기본적으로 불변으로 하였습니다. 그래서 한번 선언된 변수의 값을 바꾸려고 하면 컴파일 오류가 발생합니다. 다음 예시코드를 봅시다. fn main() { let x = 5; println!("The value of x is: {x}"); x = 6; println!("The value of x is: {x}"); } 이 코드를 컴파일하려고 하면 다음과 같은 에러코드가 뜹니다. 이렇듯 let으로 생성된 변수는 기본적으로 불변이기 때문에 변수의 값을 변경하려면 mut 키워드를 사용하여 변경 가능한 변수라는 것을 명시해야 합니다. fn main() { let mut x = 5; println..

Rust 2022.10.07

[2 - 2] Rust 간단한 숫자 맞추기 게임

지난글에 이어서 랜덤 정수를 만들어보겠습니다. 2022.09.30 - [Rust] - [2 - 1] Rust 간단한 숫자 맞추기 게임 [2 - 1] Rust 간단한 숫자 맞추기 게임 Rust의 구체적인 내용을 배우기 전에 몸풀기로 간단한 숫자 맞추기 게임을 만들어보고 시작하겠습니다. 이 게임은 콘솔로 숫자를 입력받고 입력받은 숫자가 맞춰야 될 숫자에 비해서 큰지 작은 supern0va.tistory.com 랜덤 정수 생성하기 Rust 크레이트(Crate)를 사용하여 외부 라이브러리 가져오기 Rust 크레이트(Crate)를 사용하여 외부 라이브러리 가져오기 러스트에서도 외부 라이브러리를 사용할 수 있습니다. 우선 러스트에서 pakage는 크레이트(Crate) 라고 부릅니다. 컴파일 해서 실행 가능한 것은 ..

Rust 2022.10.05

Rust 크레이트(Crate)를 사용하여 외부 라이브러리 가져오기

러스트에서도 외부 라이브러리를 사용할 수 있습니다. 우선 러스트에서 pakage는 크레이트(Crate) 라고 부릅니다. 컴파일 해서 실행 가능한 것은 binary crate이고 아래서 살펴볼 rand와 같은 다른 프로그램에서 사용되기 위한 라이브러리는 library crate 입니다. Cargo를 사용하면 외부 라이브러리를 쉽게 사용할 수 있습니다. 여기서는 예시로 rand crate를 사용해 보겠습니다. 우선 프로젝트 디렉토리의 Cargo.toml 파일을 열어서 [dependencies] 아래에 rand = "0.8.5"를 입력합니다. [dependencies] rand = "0.8.5" 그 다음 터미널에 cargo build를 실행합니다. 그러면 cargo가 알아서 외부 라이브러리를 설치해줍니다! c..

Rust 2022.10.04

[2 - 1] Rust 간단한 숫자 맞추기 게임

Rust의 구체적인 내용을 배우기 전에 몸풀기로 간단한 숫자 맞추기 게임을 만들어보고 시작하겠습니다. 이 게임은 콘솔로 숫자를 입력받고 입력받은 숫자가 맞춰야 될 숫자에 비해서 큰지 작은지를 알려줍니다. 맞춰야 할 숫자의 범위는 1~100 사이의 정수입니다. 횟수 제한이 없으면 재미 없으니까 7번의 제한을 두겠습니다! 새로운 프로젝트 만들기 프로젝트 디렉토리로 가서 터미널에 다음 명령어를 입력합니다. cargo new guessing_game 생성된 guessing_game디렉토리를 vscode로 엽니다. src/main.rs를 확인해보면 "Hello World"를 출력하는 프로그램이 있습니다. fn main() { println!("Hello, world!"); } (tistory 코드작성기에 Rust..

Rust 2022.09.30

[1] Rust (러스트) Getting Started!

러스트를 본격적으로 시작하기에 앞서 개발환경 세팅을 먼저 해줍시다. 여기서는 vscode로 세팅합니다. rustup 이라는 러스트 관리 커맨드라인 도구를 사용합니다. Linux & MacOS 터미널을 열고 다음 명령어를 입력하시면 됩니다. $ curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh Windows https://www.rust-lang.org/tools/install 에서 설치 해주시면 됩니다. 러스트가 제대로 설치되었는지 확인하려면 다음 명령어를 입력하면 됩니다. rustc --version VSCode 설정 vscode extention에서 'rust-analyzer' 을 설치합니다. 러스트 공식 익스텐션입니다. 이제 절절히 프로..

Rust 2022.09.29

Rust 공부해보기

원래도 Rust 라는 언어의 이름은 알고 있었지만 크게 관심을 가지고 있지는 않았다. 마이크로소프트 CTO가 C, C++ 대신 러스트를 도입해야한다고 주장하는 뉴스기사를 최근에 보게 되어서 Rust가 뭐길래 하고 좀 자세히 찾아보게 되었다. 아직 전부 읽어본건 아니지만 지금까지 읽은 내용 중에서 가장 흥미로웠던점은 Rust의 Ownership 개념이었다. 소유권이 move 되면서 null pointer exception을 애초에 발생하지 못하게 한다는게 다른 언어들과의 차별점인거같다. 생각보다 흥미롭고 재밌어보이는 언어라서 앞으로 공부해보고 틈틈히 이 블로그에 내용을 정리해보려고 한다.

Rust 2022.09.29
반응형