programing

문자열 벡터에 대한 조인 연산자의 동등성은 무엇입니까?

javajsp 2023. 10. 26. 20:44

문자열 벡터에 대한 조인 연산자의 동등성은 무엇입니까?

"조인" 연산자에 대한 Rust 대응값을 벡터 위에서 찾을 수 없었습니다.Strings. 저는.Vec<String>그리고 그들과 싱글로 함께 하고 싶습니다.String:

let string_list = vec!["Foo".to_string(),"Bar".to_string()];
let joined = something::join(string_list,"-");
assert_eq!("Foo-Bar", joined);

관련:

러스트 1.3.0 이상에서는 다음을 사용할 수 있습니다.

fn main() {
    let string_list = vec!["Foo".to_string(),"Bar".to_string()];
    let joined = string_list.join("-");
    assert_eq!("Foo-Bar", joined);
}

1.3.0 이전에는 이 메소드를 다음과 같이 불렀습니다.

let joined = string_list.connect("-");

메소드는 표준 라이브러리 전주곡에 의해 자동으로 가져오기 때문에 아무것도 가져올 필요가 없습니다.

join는 벡터의 요소를 복사하여 이동하지 않으므로 벡터의 내용을 파괴하지 않고 보존합니다.

Wilfred에 의해 언급된 바와 같이, 버전 1.3.0 이후로 다음을 지지하며 더 이상 사용되지 않습니다.

let joined = string_list.join("-");

상자에는 반복기에 연결되는 함수도 있습니다.

extern crate itertools; // 0.7.8

use itertools::free::join;
use std::fmt;

pub struct MyScores {
    scores: Vec<i16>,
}

impl fmt::Display for MyScores {
    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
        fmt.write_str("MyScores(")?;
        fmt.write_str(&join(&self.scores[..], &","))?;
        fmt.write_str(")")?;
        Ok(())
    }
}

fn main() {
    let my_scores = MyScores {
        scores: vec![12, 23, 34, 45],
    };
    println!("{}", my_scores); // outputs MyScores(12,23,34,45)
}

언급URL : https://stackoverflow.com/questions/28311868/what-is-the-equivalent-of-the-join-operator-over-a-vector-of-strings