Rust에서 문자열을 연결하는 방법
5844 단어 rust
swcli에서 작업할 때 사용자 입력을 기반으로 URL을 동적으로 생성해야 했습니다. URL을 만드는 5가지 방법을 찾았습니다. 이제 나는 그 5가지 접근 방식을 공유하고 어떤 접근 방식이 앞으로 가장 좋을지 강조할 것입니다.
굿 ol' + 오퍼레이터
let url = String::from("http://swapi.dev/api/") + &args.attributes + "/" + &args.id;
나는 이것을 이전 template literal 일에서 이월로 시도했습니다. 이것은 Javascript에서 문자열을 연결할 수 있는 방법 중 하나입니다.
Chris Biscardi가 his post 에서 호출한
+
연산자 사용에 대한 제한 사항을 지적해야 합니다. 소유 값에 대해서만 +
연산자를 사용할 수 있습니다. 즉, 문자열 조각에는 +
를 사용할 수 없습니다.매크로 포맷
let url = format!("http://swapi.dev/api/{}/{}", args.attributes, args.id);
rust docs에서 바로:
A common use for format! is concatenation and interpolation of strings.
String 구조체에서 push_str 사용
let mut url = String::from("http://swapi.dev/api/");
url.push_str(&args.attributes);
url.push_str("/");
url.push_str(&args.id);
이 패턴은 훌륭하지만 변경 가능한 참조가 필요합니다. Rust의 모든 것은 기본적으로 불변입니다. 문자열에 대한 변경 가능한 참조를 원하지 않으면 다른 옵션 중 하나를 고려하십시오.
Array.concat()
let url = ["http://swapi.dev/api/", &args.attributes, "/", &args.id].concat();
이 패턴은 배열을 활용하여 항목을 함께 연결합니다. 이것은 문자열을 연결하는 가장 깨끗하고 완전히 효율적인 방법으로 scottmcm에 의해 권장되었습니다.
실제 URL 크레이트
let paths = [&args.attributes, "/", &args.id].concat();
let url = Url::parse("http://swapi.dev/api/")?;
let url = url.join(&paths)?;
기억하신다면 동적으로 URL을 생성해야 했습니다. 내가 시작했어야 하는 것과 URL을 생성해야 하는 경우에도 해야 하는 것은 url crate 을 사용하는 것입니다.
.join()
메서드를 사용하면 URL 및 경로 끝에 하나의 문자열만 추가할 수 있습니다. 이 경우 위에서 언급한 .concat()
접근 방식을 사용하여 cli 인수를 연결한 다음 기본 URL에 결합해야 했습니다.보다 일반적인 목적으로 문자열을 연결해야 하는 경우 위의
.concat()
권장 사항을 따르십시오.Stackoverflow 응답 편집
반응이 좋은stackoverflow question도 있다. 몇 가지 추가 세부 사항을 살펴보십시오.
즐거운 코딩! 🤓
Reference
이 문제에 관하여(Rust에서 문자열을 연결하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/maxuuell/how-to-concatenate-strings-in-rust-k94텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)