본문 바로가기

Rust

[Rust] 타입 추론 (Type Inference) 러스트에서 변수의 타입은 타입에서 추론하거나 일반적으로 유추할 수 있습니다. 이러한 변수를 초기화하는 데 사용되는 표현식입니다. 다음과 같이 선언만 문장이 있습니다.: let number; 위와 같이하고 컴파일하면 에러가 발생합니다. 컴파일러는 그러한 변수에 데이터 유형을 할당할 수 없기 때문에 오류가 에러가 발생합니다. . 메시지는 다음과 같습니다. error[E0282]: type annotations needed 이 에러는 해당 변수의 타입이 지정되어야 함을 의미합니다. 아래와 같이 선언후에 어떤 타입인지를 명기해 주어야 합니다. let number:u32; 컴파일러가 어떤 유형의 변수인지 이해하면 해당 변수에 대한 모든 할당은 해당 타입의 표현식을 사용해야 합니다. 그렇지만, 타입을 추측할 수 있.. 더보기
Rust , VSCode 환경 설정 Rust에서는 상당히 많은 것들이 기본제공되지만, 이중에서 vscode를 이용한 환경 설정방법을 정리해보겠다. vscode자체도 굉장히 많은 것들이 빨리 변화되므로 일단은 현재 시점에서의 가장 기본으로 설정을 하도록 하겠다. (아래는 2019년 12월 기준, 정상동작하는 것을 확인하였다.) 처음 vscode를 켜고, vscode에서 CTRL+SHIFT+X 를 눌르면 market place로 들어간다. 아래와 같이 rust를 검색, 이중에서, 사람들이 가장 많이 사용하는 rust (rls)를 설치한다. 그리고 설치가 되고 난 이후, hello.rs 파일에서 기본 빌드 작업 구성을 한다. CTRL+SHIFT+P를 눌러서 아래와 같이 기본빌드 작업 구성을 누르면, 이중에서 rust : cargo build o.. 더보기
Rust, Global constant (전역 상수) Rust는 기본적으로 low-level language라고 보면되고, 그래서 모든 걸 명시해주어야 한다. python같은 동적언어들은 명시가 안되어도 되고, 하다가 type등을 중간에 바꾸어도 별 문제가 없지만, 이 정적언어들은 모든걸 다 명기를 해줘야한다. 그래서 속도를 원하면 static, 일단 돌아가는걸 만들려면 dynamic 언어를 사용해야한다. Global constant (전역상수) 프로그램 수행시간 동안에 값이 바뀌지 않는것들을 의미한다. 보통은 static 이라는 keyword를 앞에 붙여서 사용한고, 대문자로만 구성한다. 마찬가지로 type로 명시를 해준다. static NAME : &str="Underwater"; static HP : i32 =100; fn main() { printl.. 더보기
Rust, 장점, 설치 Install Rust의 장점은 compile타임에 최대한 많이 거를 수 있는 것들을 걸러서 최고의 perforcemance 를 뽑아내는것, 주로 max performance를 뽑아내는 제약중의 하나가 현대 언어에서는 필수인 garbage collection인데, 이를 turn off 하고 , c/c++ 수준으로 직접 메모리 관리까지 해야하는데, 보통 메모리관리에 어려움이 있기에, 이를 약간의 제약을 두어서, safe한 동작을 보장하는 언어이다. 아래 페이지에 설치 방법들이 대부분 나와있고, https://www.rust-lang.org/tools/install 대부분의 플래폼들을 지원하므로 큰문제는 없을 것이다. >> rustc --version 이 command로 제대로 설치 되었는지만 확인하면 기본적인 준비는 끝.. 더보기
Rust, Hello world 시작은 아래와 같이 hello world,, 로 시작한다. 아래와 같이 hello.rs를 작성하고, rustc hello.rs 로 컴파일 하면 실행파일이 나오고 이를 실행시키면 된다. fn main(){ println!("Hello, World"); } println!은 매크로이다, 마지막에 !가 붙는것은 매크로를 의미한다. rust 언어만의 독특한 점이다. 이렇게 실행하는 것 말고도 cargo를 사용하는 방법이 있다. 아래와 같이 cargo new를 이용해서 project를 생성하면, 아래와 같이 폴더가 만들어지고, cargo를 이용해서 build, run을 할 수가 있다. >cargo new --bin hello_rust Compiling hello_rust v0.1.0 (\hello_rust) Fi.. 더보기