Rust에서 문자열 포매팅이 작동하는 방식

Rust에서 문자열 포매팅이 작동하는 방식
당신과 같은 독자는 MUO를 지원하는 데 도움이 됩니다. 귀하가 당사 사이트의 링크를 사용하여 구매하면 당사는 제휴 수수료를 받을 수 있습니다. 자세히 알아보기

문자열 형식화는 읽기 쉽고 구조화된 방식으로 데이터를 조작하고 표시할 수 있게 해주기 때문에 프로그래밍의 중요한 측면입니다. 더 나은 사용자 경험을 위해 문자열 형식을 지정하여 데이터 표시를 제어할 수 있습니다.





Rust는 숫자, 날짜, 시간 및 오류 처리 기능을 포함하여 명확하고 간결한 출력을 생성할 수 있는 강력하고 유연한 문자열 서식 지정 메커니즘을 제공합니다.





오늘의 메이크업 비디오 콘텐츠를 계속하려면 스크롤하세요.

Rust의 기본 문자열 포매팅

Rust는 문자열 형식을 다른 형식으로 지정하는 기능을 제공합니다. Rust 내장 유형 .





다음을 사용할 수 있습니다. 체재! Rust에서 기본 문자열 포매팅을 위한 매크로. 그만큼 체재! 매크로는 중괄호로 묶인 자리 표시자를 사용하여 형식이 지정된 문자열을 구성하는 간결하고 강력한 방법을 제공합니다.

 fn main() { 
    let name = "Alice";
    let age = 25;
    let message = format!("My name is {} and I am {} years old.", name, age);
    println!("{}", message);
}

그만큼 이름 변수는 문자열을 보유하고 나이 변수는 정수를 보유합니다. 그만큼 메시지 변수에는 다음을 활용하는 형식화된 문자열이 있습니다. 체재! 자리 표시자를 해당 값으로 대체하여 다음을 포함하는 형식 문자열이 생성됩니다. 이름 그리고 나이 .



  기본 문자열 형식의 결과

그만큼 체재! 매크로는 출력을 제어할 수 있는 다양한 형식 지정자를 지원합니다.

부동 소수점 숫자의 소수 자릿수를 지정하고 필드 너비를 정의하고 출력을 정렬하는 방법은 다음과 같습니다.





 fn main() { 
    let pi = 3.14159;
    let formatted_pi = format!("The value of pi is approximately {:.2}", pi);
    println!("{}", formatted_pi); // prints 3.14
}

그만큼 파이 변수는 부동 소수점 값을 보유합니다. 형식 지정자와 함께 :.2 , 당신은 지시 할 수 있습니다 체재! 표시할 매크로 파이 소수점 이하 두 자리로.

그만큼 체재! 매크로는 Rust로 문자열 형식을 지정하는 많은 방법 중 하나입니다. 요구 사항에 따라 프린트! 또는 쓰다! 콘솔 또는 기타 출력 스트림에 대한 형식화된 출력을 위한 매크로입니다.





숫자 값 서식 지정

Rust는 또한 정수에서 실수 및 기타 숫자 유형에 이르기까지 다양한 숫자 값의 형식을 지정하는 기능을 제공합니다.

일반적으로 형식 지정자는 Rust에서 문자열 형식 지정의 기초이며 형식을 지정하려는 숫자 값에 따라 올바른 지정자가 필요합니다.

다음은 숫자 값에 대해 Rust가 제공하는 형식 지정자 중 일부입니다:

정수

%d 또는 %i

양수 및 음수 값을 포함하는 정수 형식을 지정합니다.

부동 소수점 숫자

%에프

정수 부분과 소수 부분을 포함하여 부동 소수점 숫자의 서식을 지정하는 데 적합합니다.

지수 표기법

%e 또는 %E

과학적 표기법(지수 형식)으로 숫자의 서식을 지정합니다.

8진수 표현

%영형

8진수 표현(기수 8)으로 정수 형식을 지정합니다.

16진수 표현

%x 또는 %X

정수를 16진수 표현(기수 16)으로 포맷합니다.

또한 숫자 값에 대한 패딩 및 정렬을 지정할 수 있습니다. 패딩은 원하는 너비를 얻기 위해 형식이 지정된 숫자 값에 공백이나 0을 추가합니다. 안쪽 여백은 표 형식 또는 기타 시각적으로 구성된 레이아웃으로 표시하기 위해 값을 정렬하는 데 도움이 됩니다. 너비 값 앞에 패딩 문자(공백 또는 0)를 지정할 수 있습니다.

값을 왼쪽 정렬하려면 - 깃발. 값을 오른쪽 정렬하려면 플래그를 생략하거나 제로 패딩에 '0' 플래그를 사용하십시오.

 fn main() { 
    number = 42
    formatted_number = "%10d" % number
    print(formatted_number)
}

값은 10자 너비 내에서 오른쪽 정렬되므로 숫자 앞에 여덟 개의 선행 공백이 생깁니다.

Rust의 사용자 정의 문자열 포맷팅

사용자 지정 문자열 형식은 보다 까다로운 작업에 중요합니다. Rust의 내장 기능을 사용하여 유형에 대한 사용자 지정 서식 구현을 만들 수 있습니다. 표준::fmt 기준 치수.

그만큼 표준::fmt 모듈은 문자열 변환 프로세스 중에 데이터 모양을 사용자 지정하기 위한 다양한 옵션으로 출력 형식을 지정하기 위한 특성을 제공합니다. 그만큼 표준::fmt 모듈은 표시하다 그리고 디버그 문자열 포매팅 작업에 편리한 특성입니다.

디스플레이 특성

그만큼 표시하다 특성은 객체가 {} 문자열의 자리 표시자. 다음을 구현할 수 있습니다. 표시하다 당신의 특성 맞춤 유형 라는 메서드를 정의하여 fmt 포맷터를 인수로 사용합니다.

포맷터는 다음과 같이 형식 출력을 제어하는 ​​다양한 방법을 제공합니다. write_str 그리고 write_fmt 행동 양식.

 use std::fmt; 

// Define a struct named `Point`
struct Point {
    x: i32,
    y: i32,
}

// Implement the `Display` trait for `Point`
impl fmt::Display for Point {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        // Format the `Point` struct as "(x, y)"
        write!(f, "({}, {})", self.x, self.y)
    }
}

fn main() {
    // Create a new `Point` instance
    let point = Point { x: 5, y: 10 };

    // Print the `Point` struct using the `Display` formatting
    println!("The point is: {}", point);
}

그만큼 가리키다 구조체는 다음을 구현합니다. 표시하다 특성. 내부 fmt 방법, 쓰다! 매크로 형식을 지정하고 원하는 출력을 {} 자리 표시자

아이폰 6을 찾았습니다 사용할 수 있습니다
  사용자 정의 문자열 형식의 결과

디버그 특성

그만큼 디버그 특성은 와 비슷하다. 표시하다 디버깅에 적합한 출력을 생성하는 데 중점을 둔다는 점을 제외하고 오류 처리 목적. 그만큼 디버그 특성은 주로 다음과 함께 사용됩니다. {:?} 자리 표시자

구현 디버그 사용자 정의 유형에 대한 특성은 간단합니다. 그만큼 디버그 특성은 다음을 기반으로 기본 구현을 제공합니다. 표시하다 특성. 그러나 기본 동작을 재정의하여 특수한 디버깅 표현을 제공할 수 있습니다.

 use std::fmt; 

// Define a struct named `Person`
#[derive(Debug)]
struct Person {
    name: String,
    age: u32,
}

// Implement the `Display` trait for `Person`
impl fmt::Display for Person {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        // Format the `Person` struct as a human-readable string
        write!(f, "Name: {}, Age: {}", self.name, self.age)
    }
}

fn main() {
    // Create a new `Person` instance
    let person = Person {
        name: String::from("Alice"),
        age: 30,
    };

    // Print the `Person` struct using the `Display` formatting
    println!("Display: {}", person);

    // Print the `Person` struct using the `Debug` formatting
    println!("Debug: {:?}", person);
}

프로그램은 디버그 에 대한 특성 사람 구조체 #[파생(디버그)] . 이렇게 하면 구조체 필드를 기반으로 구현이 자동으로 생성됩니다.

println 매크로는 디버깅 표현을 다음과 같이 인쇄합니다. 디버그 를 사용하여 출력 형식을 지정하기 위한 형식 지정 자리 표시자 디버그 구현.

Rust는 기능이 풍부한 타입 시스템을 가지고 있습니다

Rust의 풍부한 타입 시스템은 문자열 포매팅에서 중요한 역할을 합니다. Rust의 정적 타이핑 및 강력한 서식 지정 라이브러리를 활용하면 문자열 조작 및 서식 지정 작업을 처리하면서 안전하고 효율적인 코드를 작성할 수 있습니다.

유형 시스템은 컴파일 타임 안전을 보장하고 유형 불일치에서 형식 지정자 문제에 이르기까지 일반적인 오류를 방지합니다. Rust의 유형 시스템과 광범위한 서식 지정 기능의 조합으로 문자열 서식 지정 문제를 자신 있게 해결하고 언어의 성능 및 안전 보장의 이점을 누릴 수 있습니다.