当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。