【在主画面加入捷径】
       
【选择语系】
繁中 简中

Rust 程序设计教学:结构 (Struct)

【赞助商连结】

    结构 (struct) 是复合类型,其中可包含基础类型或是其他复合类型。透过结构,程序设计者可以用有效率的方式组织数据。假设没有结构,而我们要表示平面上的点,就必需要用两个变量,如以下 Rust 伪代码:

    如果有第二个点,就要再用两个变量,如下:

    读者可以想像,如果我们要用这样的方式撰写程序,程序的可维护性将会是一大问题。若现在我们要表示在三度空间的点或是高维度的向量,这样的方式在实务上变得不可行。

    或许有读者想到,可以用容器来储存数据,但容器有其限制:(1) 有些容器只能储存同类型的数据,(2) 容器无法建立新的类型,(3) 容器无法和函式结合成物件。

    建立结构

    Rust 的结构有三种:

    • C 风格结构
    • 元组结构 (tuple struct)
    • 单元结构 (unit struct)

    其中第一种最常用。以下范例建立一个 C 风格结构:

    如果希望结构的字段是可变的,同样需明确指明:

    C 风格结构的字段有名称,而元组结构则无。实例如下:

    但是,使用元组结构需记忆字段顺序,在实务上不若 C 风格结构实用。

    而单元结构没有字段。实例如下:

    单元结构本身较少使用。有时会搭配泛型程序设计来使用。

    结合数据和行为

    结构除了用来组织数据外,很大一部分在于可以利用面向对象的机制,建立自己的类型系统。物件的其中一个观点,就是 物件等于数据加上行为。面向对象是较进阶的主题,本教程后续章节会再说明。

    【赞助商连结】
    TAGS: RUST, STRUCT