go结构体

Go语言中的结构体是自定义数据类型,可以包含多种不同类型的字段,常用于描述复杂对象,如书籍。结构体变量是值类型,修改需传指针。结构体可定义属性和方法,能嵌套其他结构体,类似Java的class。本文详细介绍了结构体的声明、使用、属性、方法、赋值、类型别名、构造函数以及继承。
摘要由CSDN通过智能技术生成

int, float32等是系统的数据类型, 可以直接使用这些数据类型声明变量

而结构体是自定义的数据类型, 我们定义了某结构体后, 才可使用某结构体声明变量

数组是储存相同类型的数据集合

结构体是可以存储不同类型的数据集合, 描述的是一种事物

比如一本书: 有 作者, 书名, 价格, 书id 等信息, 可以使用结构体来描述它

结构体是值类型, 所以要修改结构体, 则需要传入其指针

结构体中可以定义多个属性, 方法(和函数不同)

结构体也可以嵌套别的结构体

结构体相当于java的class类型, go中没有class类型

 

定义结构体:

type 结构体名 struct {...}

type Book struct {
    book_name string
    book_author string
    book_price float32
    book_id int
}

结构体是我们定义的一种新的数据类型

如上所示Book结构体类型包含了string, float32, int三种不同的数据类型

结构体是我们定义的新的一种数据类型, 所以可以使用这种类型声明变量

声明变量:

var a int = 1          // int型变量

var b int = 2

var book1 Book       // Book型变量

var book2 Book

结构体的使用:

package main
import "fmt"
func main() {
    // 定义结构体
    type Book struct {
        book_name string
        book_author string
        book_price float32
        book_id int
    }
    // 声明结构体变量, 并给结构体中的每一项赋值(以这种形式赋值: 必须包括所有项)
    var book1 Book = Book{"天龙八部", "金庸", 44.9, 666666}
	
    // 使用键值对的形式, 指定给某些项赋值, 可以不用全部赋值
    var book2 Book = Book{book_name:"笑傲江湖", book_author:"金庸"}
	
    // 给结构体中的单独一项赋值
    book1.book_id = 654321
	
    fmt.Printf("书1的作者: %s\n", book1.book_author)
    fmt.Printf("书1的价格: %.1f\n", book1.book_price)
    fmt.Printf("书1的id: %d\n\n", book1.book_id)
    
    fmt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值