다음 예에서는, 꼭 이래야겠어요 훨씬 더 가치 있는 각 필드의 할당하십시오 구조체입니다 선언은 보다 작은 자연수이다. 이렇게 하면 는 하나의 추가 또는 각 필드의 값을 기술서임을 할당하십시오 보다 작은 자연수이다. All I want to 할 수 있을 때 기본값과 할당할지 구조체입니다 가 인스턴스화됩니다.
이렇게 하면 더 간결하고 방법이 있나요?
struct cParams {
iInsertMax: i64,
iUpdateMax: i64,
iDeleteMax: i64,
iInstanceMax: i64,
tFirstInstance: bool,
tCreateTables: bool,
tContinue: bool,
}
impl cParams {
fn new() -> cParams {
cParams {
iInsertMax: -1,
iUpdateMax: -1,
iDeleteMax: -1,
iInstanceMax: -1,
tFirstInstance: false,
tCreateTables: false,
tContinue: false,
}
}
}
게 '기본' 를 구현함으로써 사용자의 구조체입니다 기본값과 제공할 수 있습니다. 이 함수는 '기본' 현재 '새' 기능을 것 같습니다.
impl Default for cParams {
fn default() -> cParams {
cParams {
iInsertMax: -1,
iUpdateMax: -1,
iDeleteMax: -1,
iInstanceMax: -1,
tFirstInstance: false,
tCreateTables: false,
tContinue: false,
}
}
}
그런 다음 이 구조체입니다 만 인스턴스화하지 제공하여 기본값과 다른 값:
let p = cParams { iInsertMax: 10, ..Default::default() };
일부 경미함 데이터 구조, 변화에 대한 기본 구축현 자동으로 파생됨 이용할 수 있습니다. '# [파생합니다 (기본값)]' 를 사용하는 경우 데이터 구조, 컴파일러에서 자동으로 만들어 각 필드는 기본 기능 당신꺼에요 칠하는 색상에는 기본값입니다. 기본값입니다 부울입니다 값은 거짓, 기본값입니다 적분 값은 0 입니다.
그러나 I& # 39 를 사용하여 데이터 구조와 변경하십시오 제안하세요; d ',', '약간 Option< i64> i64 대신'. 하지만, 내가 모르는 don& # 39 의 컨텍스트입니다 코드에서 # 39, re you& 마치 특별한 의미를 표현하기 위해 사용하는 특수 값 - 1, # 39;;;; 또는 " " infinite" there& max" 게 전혀 없다. 선택적으로 사용할 수 있는 '옵션' 의 병행, 우리는 현재 가치를 나타냅니다. # 39 는 - 1 의 there& 필요 없이 해킹 사건. 대안이 될 수 있는 '없음' 또는 'x (x)' 일부 'i64 것입니까' here. 부호 없는 정수 경우 - 1 이 될 뿐만 아니라 유일한 제외어 값입니다. 그래서 '없음', '기본' 옵션을 통해 개헌안에 너회의 코드 값은 다음과 같이 보일 수 있다
#[derive(Default)]
struct cParams {
iInsertMax: Option<u64>,
iUpdateMax: Option<u64>,
iDeleteMax: Option<u64>,
iInstanceMax: Option<u64>,
tFirstInstance: bool,
tCreateTables: bool,
tContinue: bool,
}
let p = cParams { iInsertMax: Some(10), ..Default::default() };