當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Rust tuple用法及代碼示例


本文簡要介紹rust語言中 Primitive Type tuple 的用法。

有限異構序列,(T, U, ..)

讓我們依次介紹其中的每一個:

元組是有限。換句話說,元組有長度。這是一個長度元組3

("hello", 5, 'c');

'Length'在這裏有時也稱為'arity';每個不同長度的元組都是不同的、不同的類型。

元組是異構的。這意味著元組的每個元素都可以有不同的類型。在上麵的那個元組中,它具有以下類型:

(&'static str, i32, char)

元組是一個序列。這意味著可以按位置訪問它們;這被稱為'tuple indexing',它看起來像這樣:

let tuple = ("hello", 5, 'c');

assert_eq!(tuple.0, "hello");
assert_eq!(tuple.1, 5);
assert_eq!(tuple.2, 'c');

元組的順序性質適用於其各種特征的實現。例如,在 PartialOrd Ord 中,依次比較元素,直到找到第一個不相等的集合。

有關元組的更多信息,請參閱the book

特征實現

如果元組中的每個類型都實現了以下特征之一,那麽元組本身也實現了它。

由於 Rust 類型係統的臨時限製,這些特征僅在元組 12 或更少的元組上實現。將來,這種情況可能會改變。

例子

基本用法:

let tuple = ("hello", 5, 'c');

assert_eq!(tuple.0, "hello");

當您想要返回多個值時,元組通常用作返回類型:

fn calculate_point() -> (i32, i32) {
    // Don't do a calculation, that's not the point of the example
    (4, 5)
}

let point = calculate_point();

assert_eq!(point.0, 4);
assert_eq!(point.1, 5);

// Combining this with patterns can be nicer.

let (x, y) = calculate_point();

assert_eq!(x, 4);
assert_eq!(y, 5);

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Primitive Type tuple。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。