본문 바로가기

Rust

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() {

  println!("Hello, World, {}", NAME);

}

& 는 reference (참조) 한다는 것 의미이고,

아래와 같이 사용하지 않는 변수들은 compile time에 대략 다 찾아준다

 

 

위를 컴파일 하면 아래와 같은 메시지를 받을 수 있다. 

warning: static item is never used: `HP` 
 --> .\hello.rs:3:1 
  | 
3 | static HP   : i32 =100; 
  | ^^^^^^^^^^^^^^^^^^^^^^^ 
  | 
  = note: `#[warn(dead_code)]` on by default

 

위 NAME -> Name으로 바꿔서 compile하면 아래와 같은 mesage를 받는다. 

즉, 대문자로 써야됨. 

warning: static variable `Name` should have an upper case name
 --> .\hello.rs:2:8
  |
2 | static Name : &'static str="Underwater";
  |        ^^^^ help: convert the identifier to upper case: `NAME`
  |
  = note: `#[warn(non_upper_case_globals)]` on by default
  

 

이 rust는 아마도 컴파일러랑 씨름을 하면서 guide를 받는 형태가 될듯하다.

이런 언어들은 컴파일 하면서 저런 에러를 얼마나 많이 접해봤느냐가, 결국, 경험치로 작용할 듯하다.  

반응형

'Rust' 카테고리의 다른 글

Rust, 튜플  (0) 2020.01.20
Rust, 자료형 Numeric(정수)  (0) 2020.01.14
Rust , VSCode 환경 설정  (0) 2019.12.30
Rust, 장점, 설치 Install  (0) 2019.12.10
Rust, Hello world  (0) 2019.12.08