답변:
mutable 변수가 많이 필요한 경우 각각 mut 키워드가 필요하고 a = b = c = 0과 같은 작업을 수행 할 수 없으므로 변수를 선언하고 초기화하는 데 많은 공간이 낭비 될 수 있습니다. 해결책은 가변 배열을 선언하는 것입니다
let mut a=[0;5];
일반 변수와 비교할 때마다 3 바이트를 더 소비합니다.
a[0]+=1;
그러나 여전히 가치가 있습니다.
동일한 트릭에 튜플을 사용하는 것이 종종 더 나은 옵션입니다.
let mut t=(1,4,"this", 0.5, 'c');
이것은 각 사용 대 배열에 바이트를 저장하는 이점이 있습니다.
t.0=2
또한 서로 다른 유형이 될 수 있습니다. 단점은 초기화하는 데 더 많은 문자가 필요합니다.
예를 들어 문자열 형식을 사용하는 경우 print!()
사용하는 경우 번호가 매겨진 포맷터와 번호가 지정되지 않은 포맷터를 사용하여 항목 당 하나의 바이트를 형식으로 저장할 수 있습니다.
예제와 함께 가장 잘 표시됩니다.
fn main(){
print!("{}{}{}. Yes, {0}{}{2}. All you other{1}{2}s are just imitating.",
"I'm",
" Slim",
" Shady",
" the real");
}
어떤 출력 :
I'm Slim Shady. Yes, I'm the real Shady. All you other Slim Shadys are just imitating.
따라서 번호가 지정되지 않은 포맷터가 항목에 순서대로 할당되므로 인덱스를 건너 뛸 수 있습니다. 포맷 할 때 항목 당 하나의 번호가 지정되지 않은 포맷터 만 사용할 수 있습니다. 그 후에는 포맷이 끝납니다.
다양한 것을 고려한 후에는 일반적으로 줄을 검색하는 가장 짧은 방법이라고 생각합니다. 줄은 개행 문자를 가지며, 트리밍 ( .trim()
) 또는 슬라이싱으로 수행 할 수없는 경우 제거 할 수 있습니다 .
let y=&mut"".into();std::io::stdin().read_line(y);
여러 줄의 경우 lines
반복자를 사용할 수 있으며 반복 된 줄은 줄 바꿈으로 끝나지 않습니다. 글로브 수입은 수입에 필요한 BufRead
필요한, lines
사용할 수하는 StdinLock<'_>
유형입니다.
use std::io::*;let y=stdin();y.lock().lines()