结构体

struct是一种复合数据类型(或记录)声明,它在内存块中的一个名称下定义物理分组的变量列表,允许通过单个指针或通过返回相同地址的struct声明的名称访问不同的变量。 对于来自[OOP]https://en.wikipedia.org/wiki/Object-oriented_programming) 语言的人来说,它可以被认为是“类”,但有更多的限制。

struct User {
    name string
    email string
    country string
}

fn main() {
    user := User {
        name: "V developers"
        email: "developers@vlang.io"
        country: "Canada"
    }

    println(user.country)
}

注意:结构是在堆栈上分配的。

创建结构的新实例时,可以使用逗号分隔每个字段。当您想在一行上创建一个新实例时,它很有用。

user := User { name: "V developers", email: "developers@vlang.io", country: "Canada" }

前缀&

您还可以在堆上分配一个结构,并使用&前缀获取对它的引用,如下所示:

user的类型是&user。它是对User的引用。

访问修饰符

默认情况下,结构字段是privateimmutable。它们的访问修饰符可以用pubmut更改。

您可以将它们定义为private mutable

您还可以将它们定义为public immutable(只读)。

或作为public,但仅在父模块中是mutable

或父模块内外的publicmutable

命名规则

  • struct的名称应始终为大写。

  • 变量命名使用Snake_Case

练习

1.创建存储和显示“用户”信息的结构。 2.创建一个包含“x”和“y”字段的“Point”结构,并用private和public保护它们。

Last updated

Was this helpful?