[쉬운 시리즈를 이해하는 | rustlang 언어 | 제로 | 시작하기 | (11)]

[쉬운 시리즈를 이해하는 | rustlang 언어 | 제로 | 시작하기 | (11)]

흥미롭게도 기본

구조체

오늘 우리는 데이터 구조에 대해 살펴 : 구조체를.

간략하게, 구조체는 데이터 유형을 관련 데이터를 캡슐화하는데 사용된다.

일반적으로, 고비 수단과 같은 구조체 이름 : 낙타 표기법을

녹 구조체 방식으로 여러 가지 정의가 있습니다 :

  1. C 형 구조체 (C 언어 구조체의 형태)
  2. 튜플 구조체 (그룹의 형태로 구조체 소자)
  3. 구조체 단위 (구조체 단위)

녹 추상적 객체 지향, 일반적으로 구조체의 특성 (특징)에 의해 구현되는, 즉 구조체에

속성 데이터 패키지 및 특성에 대한 패키지는 다음 IMPL에 의해 상관 관계.

코드에서 살펴 보자 :

C 스타일 구조체

// Struct Declaration
struct Color {
    red: u8,
    green: u8,
    blue: u8
}

fn main() {
  // Creating an instance
  let black = Color {red: 0, green: 0, blue: 0};

  // Accessing its fields using dot notation
  println!("Black = rgb({}, {}, {})", black.red, black.green, black.blue); //Black = rgb(0, 0, 0)

  // Structs are immutable by default, use `mut` to make it mutable but doesn't support field level mutability
  let mut link_color = Color {red: 0,green: 0,blue: 255};
  link_color.blue = 238;
  println!("Link Color = rgb({}, {}, {})", link_color.red, link_color.green, link_color.blue); //Link Color = rgb(0, 0, 238)

  // Copy elements from another instance
  let blue = Color {blue: 255, .. link_color};
  println!("Blue = rgb({}, {}, {})", blue.red, blue.green, blue.blue); //Blue = rgb(0, 0, 255)

  // Destructure the instance using a `let` binding, this will not destruct blue instance
  let Color {red: r, green: g, blue: b} = blue;
  println!("Blue = rgb({}, {}, {})", r, g, b); //Blue = rgb(0, 0, 255)

  // Creating an instance via functions & accessing its fields
  let midnightblue = get_midnightblue_color();
  println!("Midnight Blue = rgb({}, {}, {})", midnightblue.red, midnightblue.green, midnightblue.blue); //Midnight Blue = rgb(25, 25, 112)

  // Destructure the instance using a `let` binding
  let Color {red: r, green: g, blue: b} = get_midnightblue_color();
  println!("Midnight Blue = rgb({}, {}, {})", r, g, b); //Midnight Blue = rgb(25, 25, 112)
}

fn get_midnightblue_color() -> Color {
    Color {red: 25, green: 25, blue: 112}
}

양식 구조체의 튜플

struct Color(u8, u8, u8);
struct Kilometers(i32);

fn main() {
  // Creating an instance
  let black = Color(0, 0, 0);

  // Destructure the instance using a `let` binding, this will not destruct black instance
  let Color(r, g, b) = black;
  println!("Black = rgb({}, {}, {})", r, g, b); //black = rgb(0, 0, 0);

  // Newtype pattern
  let distance = Kilometers(20);
  // Destructure the instance using a `let` binding
  let Kilometers(distance_in_km) = distance;
  println!("The distance: {} km", distance_in_km); //The distance: 20 km
}

구조체 단위

struct Electron;

fn main() {
  let x = Electron;
}

위, 난 당신에게 도움이되기를 바랍니다.

如果遇到什么问题,欢迎加入:rust新手群,在这里我可以提供一些简单的帮助,加微信:360369487,注明:博客园+rust

https://learning-rust.github.io/docs/b2.structs.html

추천

출처www.cnblogs.com/gyc567/p/11961235.html