[Rust]String 데이터 처리 [memo]
하고 싶은 일
String 변수 a의 문자열을 비우고 값을 반환합니다.
구현 코드
변수 a가 사전에 mutable에서 참고할 수 있다는 것을 전제로 하다
{
let mut b = String::new();
std::mem::swap(&mut a, &mut b);
b
}
의 형식으로 기술하다.추기:core:mem:take로 만들었어요.WAO.
코드
하나하나 만들어보고 싶은 그런 인코딩도 그렇고, 말하자면 크레페에 전 세계의 함수도 없기 때문에 다음과 같은 맥로를 구성하여 사용하고 있다.
#[macro_export]
/// Takes string inner.
macro_rules! take_string {
($var:ident) => {{
let mut empty = String::new();
std::mem::swap(&mut $var, &mut empty);
empty
}};
($var:expr) => {{
let mut empty = String::new();
std::mem::swap(&mut $var, &mut empty);
empty
}};
}
추기:core:mem::take 가능#[macro_export]
/// Takes string inner.
macro_rules! take {
($var:ident) => {
core::mem::take(&mut $var)
};
($var:expr) => {{
core::mem::take(&mut $var)
}};
}
로 수정된 느낌.또는 이미,use core:mem:take;나는 이렇게 하는 것이 비교적 좋다고 생각한다.
하고 있는 일
빈 문자열을 가진 변수를 만들고 std:mem:swap로 변수 값을 교환합니다. (보충 전)
추기 후:core:mem:take 함수를 이용하여 Option에서take와 같은 일을 했습니다.
이것저것
String에 take를 편입하고 싶습니다.아니면, Zenn은 쓰기가 비교적 쉽다.무겁지 않아요.
Reference
이 문제에 관하여([Rust]String 데이터 처리 [memo]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/suauiya/articles/fff40c019faa602c85b5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)