본문 바로가기

진리는어디에

[Rust] Hello World

들어가며

이번 포스트에서는 전통적인 프로그래밍의 시작점인  'Hello World'를 출력하는 프로그램을 러스트로 작성해 보며 러스트의 기본 요소들을 살펴 보도록 하겠다.

hello.rs

러스트 소스 파일의 확장자는 .rs 다. 에디터를 열어 아래와 같이 'hello.rs' 소스 파일을 작성해 보자. 소스 코드를 작성하기 위해서는 간단한 메모장 프로그램을 이용해도 상관 없지만 필자의 경우는 여러 에디팅 기능이 지원되는 Visual Studio Code를 즐겨 이용한다. Visual Studio Code와 러스트의 연동 방법은 [여기]를 참고하자.

// hello.rs

fn main()
{
    println!("Hello World");
}

위와 같이 작성이 끝난후 컴파일과 실행을 해보기 위해서는 [Rust] Cargo 이용해 빌드하기를 참고 하도록 하자.

주석

러스트에서는 두 가지형태의 주석을 제공한다.

싱글 라인 코멘트 : //

멀티 라인 코멘트 : /* ~ */

프로그램의 엔트리 포인트

러스트는 메인 함수부터 실행 된다. 모든 프로그램에서는 반드시 main 함수가 존재 해야 한다.

함수를 만들 때는 fn 키워드를 사용한다.

fn function_name()
{
    // 반환 값이 없는 함수
}

fn function_name() -> i32
{
    return 0; // 반환 값이 있는 함수
}

문장의 끝은 세미콜론(;)으로 끝나야 한다.

매크로

위 예제에서 사용된 println은 표준 출력에 문자열을 출력하는 매크로다

매크로를 사용할 때는 '매크로이름!()'과 같은 형태로 사용 한다.

foo(); foo라는 함수 호출

foo!(); foo라는 매크로 사용

왜 함수가 아닌 매크로를 사용하는가?

러스트는 함수 오버로딩, 가변인자 등의 다른 언어에서 제공하고 있는 기능을 제공하지 않는다. 러스트 문법으로 할 수 없는 일을 매크로를 이용하면 가능하다.

러스트는 매크로를 많이 사용한다.

일단 아무런 생각하지 말고 위 코드를 따라 작성하다. 러스트 코드를 

러스트의 네이밍 컨벤션

다른 언어를 공부하면서 한번도 변수의 이름에 대해 경고를 날리는 언어를 본적이 없었는데 러스트는 그걸 한다.

러스트는 기본적으로 변수명을 만들 때 snake case를 사용한다. 이를 지키지 않는 경우 컴파일 시 경고를 발생 시킨다.

변수 이름, 함수 이름 : 모두 소문자, 한 단어 이상 사용시 _ 로 연결
eg) shink_to_fit()

타입이름 : 대문자로 시작. Point, 단 primitive 타입은 모두 소문자(i32)

상수 이름 : 모두 대문자

부록 1. 같이 읽으면 좋은 글

유익한 글이었다면 공감(❤) 버튼 꾹!! 추가 문의 사항은 댓글로!!