English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Rust 데이터 타입

Rust 언어의 기본 데이터 타입은 다음과 같습니다.

정수형(Integer)

정수형은 비트 길이와 비표시 여부에 따라 다음과 같은 종류로 나뉩니다:

비트 길이표시비표시
8-biti8u8
16-biti16u16
32-biti32u32
64-biti64u64
128-biti128u128
archisizeusize

isize와 usize 두 가지 정수형을 사용하여 데이터 크기를 측정합니다. 이들의 비트 길이는 실행되는 타겟 플랫폼에 따라 다릅니다. 만약 32 비트 길이 아키텍처의 프로세서는 32 비트 길이 정수형.

정수 표현 방법은 다음과 같습니다:

진수
10진98_222
16진0xff
8진0o77
이진0b1111_0000
바이트(비록 u8 형)b'A'

물론, 일부 정수 중간에 하이픈이 있는 경우가 있습니다. 이 설계는 큰 숫자를 입력할 때 숫자의 크기가 얼마나 되는지 쉽게 판단할 수 있게 합니다.

부동소수점 숫자형(Floating-Point)

Rust는 다른 언어와 마찬가지로 지원합니다. 32 비트 길이의 부동소수점 숫자(f32)와 64 비트 길이의 부동소수점 숫자(f64) 기본적으로,64.0은 64 비트 길이의 부동소수점 숫자는, 현대 컴퓨터 프로세서가 두 가지 부동소수점 계산에 대해 거의 동일한 속도로 작동하기 때문에, 64 비트 길이의 부동소수점 숫자는 더 높은 정밀도를 가집니다.

fn main() {
    let x = 2.0; // f64
    let y: f32 = 3.0; // f32
}

수학 연산

수학 연산을 반응하는 프로그램을 작성합니다:

fn main() { 
    let sum = 5 + 10; // 덧셈 
    let difference = 95.5 - 4.3; // 뺄셈 
    let product = 4 * 30; // 곱하기 
    let quotient = 56.7 / 32.2; // 나누기 
    let remainder = 43 % 5; // 나머지
}

많은 연산자들이 = 기호를 추가하면 자기 연산을 의미합니다. 예를 들어:

sum += 1 sum = sum + 1

주의:Rust는 지원하지 않습니다. ++--이 두 연산자가 변수의 앞뒤에 나타나면 코드의 가독성을 저해하고 개발자가 변수 변경에 대한 인식을 약화시킵니다.

부울형

부울형은 bool로 표현되며, 값은 true 또는 false 만 가능합니다.

문자형

문자형은 char로 표현됩니다.

Rust의 char 타입 크기는 4 한 바이트는 Unicode 범위 값을 대표하며, 이는 중국어, 일본어, 한국어 문자 등 비영어 문자와 이모티콘, 네트웨어 공간 등을 지원하는 것을 의미합니다.

Unicode 값의 범위는 U+0000부터 U+D7FF까지와 U+E000부터 U+10FFFF(끝 포함). 하지만, "문자"라는 개념은 Unicode에 존재하지 않기 때문에, "문자"라는 개념에 대한 인상이 Rust의 문자 개념과 일치하지 않을 수 있습니다. 따라서 일반적으로 UTF-8 문자(영어 문자가 아닌 문자를 최대한 문자열에 포함시키세요).

주의:중국어 문자编码은 두 가지가 있습니다(GBK과 UTF-8),따라서 프로그래밍에서 중국어 문자열을 사용하면 깨짐이 발생할 수 있습니다. 이는 소스 프로그램과 명령행의 문자编码이 일치하지 않기 때문입니다. 따라서 Rust에서 문자와 문자열은 모두 UTF-8 编码를 사용하지 않으면 컴파일러가 오류를 보고합니다.

복합 타입

튜플은 ()로 포함된 데이터의 집합으로, 다른 종류의 데이터를 포함할 수 있습니다:

let tup: (i32, f64, u8) = (500, 6.4, 1);
// tup.0 равно 500
// tup.1 равно 6.4
// tup.2 равно 1
let (x, y, z) = tup;
// y는 6.4

배열은 []로 포함된 동일한 타입의 데이터로 구성됩니다.

let a = [1, 2, 3, 4, 5];
// a는 길이가 5 의 정수 배열
let b = ["January", "February", "March"];
// b는 길이가 3 의 문자열 배열
let c: [i32; 5] = [1, 2, 3, 4, 5];
// c는 길이가 5 의 i32 배열
let d = [3; 5];
// равно let d = [3, 3, 3, 3, 3];
let first = a[0];
let second = a[1];
// 배열 접근
a[0] = 123; // 오류:배열 a는 불변입니다
let mut a = [1, 2, 3];
a[0] = 4; // 정확