Day10-Go结构Struct

前言

今天要介绍 Go 语言的另一种资料型态,在先前,我们介绍的变数都是储存单一的值或是多个相同型态的值,那如果要用变数表示较复杂的概念,像是纪录一个人的名字、年龄或是身高时,由於这些是不同的资料型态,所以要记录下来时,就必须使用不同的容器,这里会介绍 Go 语言中的结构 Struct;此外,大部分的 Go 物件导向程序也会使用结构,但本篇单纯介绍结构,先不会带入物件导向的概念。

建立结构

Go 使用 struct 做为结构的关键字,这是承袭 C 的惯例。下面介绍一下如何建立一个结构:

type Person struct {
   name  string
   year  int64
   heigh float64
}

我们通常会在宣告结构时一并定义新的型别,因为种结构在程序里,可能会多次使用,便於後续程序呼叫,使用 type 可以宣告新型别,在上述的例子我们建立一个叫 Person 的 struct,而里面的结构组成有 name(string) 、year (int64)和 heigh(float64)。接着我们以此结构,宣告一个变数,并填入其里头的属性:

package main
 
import "fmt"
 
type Person struct {
   name  string
   year  int64
   heigh float64
}
 
func main() {
   jack := Person{
       name:  "Jack",
       year:  18,
       heigh: 178,
   }
 
   fmt.Println(jack) // {Jack 18 178}
}

透过使用结构,我们可以更有效率地处资料数据,以下示范如何使用结构里的数据,来进来一些运算及判断,我们看以下范例:

package main
import (
   "fmt"
)
type Rectangle struct {
   length float64
   width  float64
}
func main() {
   x := Rectangle{
       length: 3,
       width:  3,
   }
  
   if x.length == x.width{
       fmt.Println("这是个正方形,且面积为", x.length * x.width)
   } else{
       fmt.Println("这只是个长方形,面积为", x.length * x.width)
   }
}

上述的例子,先宣告一个名为 Rectangle 的结构,里面属性有 length 和 width,再以此结构宣告一个变数 x 并填入其属性,然後依照属性来判断其是否为正方形,并计算其面积。

结语

本文介绍了 Go 语言的结构 Struct,结构是 Go 语言一个很重要的资料型态,希望能让读者了解结构基本的使用方式。下一篇文章会介绍 Go 语言的 Map,谢谢读者们今天的阅读!

参考来源

https://opensourcedoc.com/golang-programming/struct/


<<:  D17-(9/17)-联电(2303)-成熟晶圆代工

>>:  Day 03 Python 入门

[D23] 物件侦测(4)

前面我们认识的都是"two stage"的方法,在整体的运行过程上没有那麽快速,所以在很多行动装置上...

Day13 - 重构产品页面 API,使用 API routes - feat. MongoDB

重构产品页面 API 在这个章节中,我们将使用 API routes 重构在前面章节中撰写的「产品列...

【C++】Pointer to Pointer

Pointer to Pointer 顾名思义就是指标的指标~ 它可能是一个变数的地址的地址~ 我们...

Day-10 近水楼台先得月

近水楼台先得月 tags: IT铁人 区域性原则 有在组装电脑的人就会知道,电脑的储存装置包括记忆体...

Burnup/Down Chart

Burnup Chart 燃起图 / Burndown Chart 是燃尽图分别是用来表示工作量的工...