반응형

■ 배열

배열은 순차적으로 동일한 타입의 값으로만 묶을 수 있으며, 색인(인덱스)을 통해 각 요소에 접근할 수 있습니다. 배열의 색인 범위를 벗어나는 인덱스로 요소를 접근하면 Rust가 오류와 함께 패닉됩니다.


◆ 배열의 색인을 통한 각 요소 접근

10, 50, 100 을 요소로 갖는 배열에 색인을 통해 각각의 요소에 접근할 수 있는지 확인합니다.

fn main() {
    let arr = [10, 50, 100];

    println!("첫번째 요소 : {}", arr[0]);
    println!("두번째 요소 : {}", arr[1]);
    println!("세번째 요소 : {}", arr[2]);
}

▶ 출력 결과

첫번째 요소 : 10
두번째 요소 : 50
세번째 요소 : 100

◆ 배열의 색인 범위를 벗어나는 인덱스 접근

10, 50, 100 을 요소로 갖는 배열에서 5번째 위치에 있는 요소에 접근할 수 있는지 확인합니다.

배열에 인덱스는 0 부터 시작함에 따라 해당 배열은 최대 접근할 수 있는 인덱스가 3이 됩니다. 따라서 이 작업은 panic이 발생합니다. 해당 내용은 컴파일러가 체크할 수 없는 영역이며 panic이 발생됨에 따라 프로그램에 큰 이슈를 유발할 수 있기 때문에 주의가 필요합니다.

fn main() {
    let arr = [10, 50, 100];

    println!("존재하지 않는 요소 접근 : {}", arr[4]);
}

▶ 출력 결과(에러)

반응형

'Programming Language > Rust' 카테고리의 다른 글

[Rust/러스트] 반복문 정리  (0) 2022.02.16
[Rust/러스트] 조건문 정리  (0) 2022.02.16
[Rust/러스트] 함수 정리  (0) 2022.02.15
[Rust/러스트] 튜플 다루기  (0) 2022.02.11
[Rust/러스트] 변수 정의  (0) 2022.02.10
반응형

■ 튜플 

튜플은 순차적으로 다양한 타입의 값을 묶을 수 있다. 

또한 변수 선언시 다중 바인딩이 가능하며, 색인을 통해 각 요소에 접근할 수 있다.


◆ 튜플의 다중 변수 바인딩

10, 50.2, 100 의 값으로 묶여 있는 튜플을 x, y, z 변수에 바인딩 하여 각각의 변수에 값이 순차적으로 x=10, y=50.2, z=100을 갖고 있는지 확인한다.

fn main() {
    let tup = (10, 50.2, 100);
    let (x, y, z) = tup;

    println!("x : {}", x);
    println!("y : {}", y);
    println!("z : {}", z);
}

▶ 출력 결과


◆ 튜플의 색인을 통한 각 요소 접근

10, 50.2, 100 의 값으로 묶여 있는 튜플에 색인을 통해 각각의 요소에 접근할 수 있는지 확인한다.

fn main() {
    let tup = (10, 50.2, 100);

    println!("첫번째 요소 : {}", tup.0);
    println!("두번째 요소 : {}", tup.1);
    println!("세번째 요소 : {}", tup.2);
}

▶ 출력 결과

반응형

'Programming Language > Rust' 카테고리의 다른 글

[Rust/러스트] 반복문 정리  (0) 2022.02.16
[Rust/러스트] 조건문 정리  (0) 2022.02.16
[Rust/러스트] 함수 정리  (0) 2022.02.15
[Rust/러스트] 배열 다루기  (0) 2022.02.11
[Rust/러스트] 변수 정의  (0) 2022.02.10
반응형

■ 변수

러스트 변수의 특징은 선언과 초기화된 이후에 수정이 불가능하다는 불변성을 갖고 있습니다.

이는 러스트가 제공하는 안전성과 동시성을 취하기 위한 핵심적인 역할을 합니다.

 

하지만 여러 글로벌 프로그래밍 언어에서의 변수가 가변성을 통해 매우 유용하게 사용되듯이

러스트도 변수에 접두어(mut)를 취함으로써 가변성 변수로 사용할 수 있습니다.


◆ 변수의 불변성 특징

number 변수를 10으로 초기화하고 100으로 수정해봄으로써, 간단하게 변수의 불변성을 체크할 수 있습니다.

fn main() {
    let number = 10;
    println!("My number is {}", number);

    number = 100; // 에러 발생 지점
    println!("Change my number : {}", number);
}

▶ 출력 결과(에러 발생)


◆ 변수의 가변성 특징

정수 데이터를 갖는 number 변수 앞에 접두어(mut)를 추가하고 10에서 100으로 수정해봄으로써,

간단하게 변수의 가변성을 체크할 수 있습니다.

fn main() {
    let mut number = 10;
    println!("My number is {}", number);

    number = 100;
    println!("Change my number : {}", number);
}

▶ 출력 결과(정상 출력)


◆ 변수 쉐도잉(Shadowing)

같은 이름의 변수를 새롭게 선언 함으로써 다양한 데이터를 사용할 수 있습니다.

정수 데이터 10을 갖고 있는 data 변수에 문자열 데이터 "Hyunmin"을 새롭게 선언 및 초기화함으로써, 변수의 쉐도잉을 체크할 수 있습니다.

fn main() {
    let data = 10; // 정수 데이터를 갖는 변수 
    println!("My data is {}", data);

    let data = "Hyunmin"; // 문자열 데이터를 갖는 변수
    println!("My data is {}", data);
}

▶ 출력 결과(정상 출력)

반응형

'Programming Language > Rust' 카테고리의 다른 글

[Rust/러스트] 반복문 정리  (0) 2022.02.16
[Rust/러스트] 조건문 정리  (0) 2022.02.16
[Rust/러스트] 함수 정리  (0) 2022.02.15
[Rust/러스트] 배열 다루기  (0) 2022.02.11
[Rust/러스트] 튜플 다루기  (0) 2022.02.11
반응형

■ 데이터 타입

데이터를 저장하는 곳을 변수라고 하며, 변수는 데이터의 크기, 형태, 정밀도 등에 따라 다양한 타입이 존재한다. 또한 데이터의 타입은 정수형, 실수형, 문자형, 불형으로 구분할 수 있다.


■ 정수형

정수형 데이터 타입은 소수점이 없는 자연수의 데이터를 저장할 수 있으며, 부호(+, -)에 따라 양의 정수와 음이 정수로 구분할 수 있다. 양의 정수와 음의 정수를 포함하는 타입을 signed, 음의 정수만을 포함하는 정수 타입을 unsigned로 설정할 수 있다.

※ 데이터 타입


■ 실수형

실수형 데이터 타입은 원주율(3.14..)과 같은 실수 데이터를 저장할 수 있으며, 전체 비트를 부호 비트, 지수 비트, 유효 숫자 비트로 구분하여 데이터를 저장하기 때문에 같은 바이트 대비 정수형 데이터보다 큰 가용범위의 값을 저장할 수 있다.

※ 데이터 타입


■ 문자형

문자형 데이터 타입은 알파벳과 숫자 및 기호들을 나타내는 char와 유니코드 문자를 나타내는 wchar_t로 구분되며, char 는 아스키(ASCII) 코드와 대응되어 사용된다.

* 참고) 아스키 코드

 

ASCII - 위키백과, 우리 모두의 백과사전

1972 프린터 사용 설명서에 개시된 아스키 코드 차트표 미국정보교환표준부호(영어: American Standard Code for Information Interchange), 또는 줄여서 ASCII( , 아스키)는 영문 알파벳을 사용하는 대표적인 문자

ko.wikipedia.org

※ 데이터 타입


■ 불형

불형 데이터 타입은 참(true), 거짓(false) 두개의 값만 저장할 수 있으며 true, false 값 이외에 0 또는 NULL을 제외한 값을 불형 데이터 타입 변수에 대입하면 true를 반환한다.

※ 데이터 타입


반응형

'Programming Language > C++' 카테고리의 다른 글

정적 변수와 상수 변수  (0) 2025.10.30
함수와 구조체  (0) 2025.10.30
포인터와 메모리  (0) 2025.10.29
C ++ 프로그래밍 기초  (0) 2025.10.29
개념 정리  (0) 2025.10.29
반응형

■ 조건문 

1. if 조건식 then ~ end

조건식에 부합할 경우 then 과 end 사이에 작업 실행

local a = 1
if a == 1 then
    print("a 는 1 이다.")
end
결과 :
a 는 1 이다.

2. if 조건식 then ~ else ~ end

조건식에 부합할 경우 then 과 else 사이에 작업 실행

부합하지 않을 경우 else 와 end 사이에 작업 진행

local a = 1
if a == 1 then
    print("a 는 1 이다.")
else 
    print("a 는 1 이 아니다.")
end
결과 :
a 는 1 이다.

3. if 조건식 then ~ elseif 조건식 ~ then ~ else ~ end

* 작업 순서 

1) if 조건식 : 참일 경우 then ~ elseif 작업 실행

2) if 조건식 : 거짓일 경우 elseif 조건식 확인

3) elseif 조건식 : 참일 경우 then ~ else 작업 실행

4) elseif 조건식 : 거짓일 경우 else ~ end 작업 실행

local a = 1
if a > 1 then
    print("a 는 1 보다 크다.")
elseif a < 1 then
    print("a 는 1 보다 작다.")
else
    print("a 는 1 이다.")
end
결과 :
a 는 1 이다.
반응형

'Programming Language > Lua' 카테고리의 다른 글

[Lua] 반복문(Loop) 정리  (0) 2021.12.02
[Lua] 기본 자료형 정리  (0) 2021.12.02
반응형

■ 반복문 정리

1. for ~ do ~ end 

for 와 do 사이에는 초기값, 목표값, 증감값을 설정하며, 증감값을 설정하지 않을 경우 1씩 증가한다.

for i = 1,3,1 
do
    print(i)
end

for i = 1,3
do
    print(i)
end
결과 :
1
2
3
1
2
3

2. while (조건식) do ~ end

조건식에 부합할 경우 do 와 end 사이에 작업을 반복적으로 실행한다.

local a = 1

while (a < 3)
do
    print(a)
    a = a + 1
end
결과 :
1
2

3. repeat ~ until (조건식)

while 문에 경우 반복작업을 하기 전에 조건식을 판단하지만, repeat 문에 경우 반복작업을 진행하고 조건식을 판단한다.

local a = 1
repeat
    print(a)
    a = a + 1
until (a > 3)
결과 :
1
2
3

 

반응형

'Programming Language > Lua' 카테고리의 다른 글

[Lua] 조건문 정리  (1) 2021.12.02
[Lua] 기본 자료형 정리  (0) 2021.12.02

+ Recent posts