겹의 함정

2948 단어 rustbeginners
image by Stefano Valicchia /unsplash

나는 녹을 배우고 싶지만 내 자바 스크립트 배경으로 철학이 그렇게 쉽지는 않습니다. 이 언어를 배우기 위해 몇 가지 codewars kata를 해결하기 시작하고, 그 동안 정말 괜찮은 jupyter 노트북에도 Rust 커널을 넣었습니다.

나는 이 짧은 문제를 발견했습니다: char 반복 없이 string으로 바꾸십시오. 이것이 연습에 좋은 것 같아요.

"tttrrrappp oooof fffffooooldd"
  .chars()
  .fold("", |mut acc, ch| if acc.chars().last() == Some(ch) {acc} else {[acc, ch.to_string()].concat()})


그러나 이것은 다음 오류로 이어집니다.

.fold("", |acc, ch| if acc.chars().last() == Some(ch) {acc} else {[acc, ch.to_string()].concat()})
                                                                        ^^^^^^^^^^^^^^ expected `&str`, found struct `std::string::String`
mismatched types



나는 이 경우를 제외하고는 매우 의미가 있기 때문에 녹 오류 메시지를 좋아합니다. 문자열 처리에 대한 수많은 녹 예제와 블로그를 살펴본 후 마침내 해결책을 찾았습니다.

"tttrrrappp oooof fffffooooldd"
  .chars()
  .fold(String::new(), |acc, ch| if acc.chars().last() == Some(ch) {acc} else {[acc, ch.to_string()].concat()})


폴드 컬렉터는 정적이지 않을 것입니다!

좋은 웹페이지 즐겨찾기