最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go語言學(xué)習(xí)之指針的用法詳解

 更新時間:2022年04月21日 16:47:14   作者:隱姓埋名4869  
這篇文章主要為大家詳細(xì)介紹了Go語言中指針的用法,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Go語言有一定的幫助,需要的可以參考一下

引言

Go 語言中數(shù)組可以存儲同一類型的數(shù)據(jù),但在結(jié)構(gòu)體中我們可以為不同項(xiàng)定義不同的數(shù)據(jù)類型

結(jié)構(gòu)體是由一系列具有相同類型或不同類型的數(shù)據(jù)構(gòu)成的數(shù)據(jù)集合

結(jié)構(gòu)體表示一項(xiàng)記錄,比如保存圖書館的書籍記錄,每本書有以下屬性:

Title :標(biāo)題

Author : 作者

Subject:學(xué)科

ID:書籍ID

一、定義結(jié)構(gòu)體

1. 語法格式

結(jié)構(gòu)體定義需要使用 type 和 struct 語句

struct 語句定義一個新的數(shù)據(jù)類型,結(jié)構(gòu)體中有一個或多個成員

type 語句設(shè)定了結(jié)構(gòu)體的名稱

結(jié)構(gòu)體的格式如下

type struct_variable_type struct {
    member definition
    member definition
    ...
    member definition
 } 

一旦定義了結(jié)構(gòu)體類型,它就能用于變量的聲明,語法格式如下

variable_name := structure_variable_type {value1, value2...valuen}

或者

variable_name := structure_variable_type { key1: value1, key2: value2..., keyn: valuen}  

2. 示例

package main
 
import "fmt"
 
type Persion struct {
    name    string
    sex     string
    age     int
    id_card int
}
 
func main() {
    //創(chuàng)建一個新的結(jié)構(gòu)體
    fmt.Println(Persion{"zhangsan", "男", 20, 123412424})
    //使用key:value格式
    fmt.Println(Persion{name: "lisi", sex: "女", age: 18, id_card: 133654623})
    //忽略的字段為0或空
    fmt.Println(Persion{name: "wangwu", id_card: 21352365})
}

輸出結(jié)果

{zhangsan 男 20 123412424}
{lisi 女 18 133654623}
{wangwu  0 21352365}  

二、訪問結(jié)構(gòu)體成員

如果要訪問結(jié)構(gòu)體成員,需要使用點(diǎn)號.操作符,格式為:

結(jié)構(gòu)體.成員名"  

結(jié)構(gòu)體類型變量使用 struct 關(guān)鍵字定義,實(shí)例如下:

package main
 
import "fmt"
 
func main() {
    //結(jié)構(gòu)體聲明
    type Persion struct {
        name string
        age  int
        sex  string
        id   int
    }
    //結(jié)構(gòu)體類型的變量
    var (
        Persion1 Persion //聲明 Persion1 為 Persion 類型
        Persion2 Persion //聲明 Persion2 為 Persion 類型
    )
 
    //給prison1賦值
    Persion1.name = "lisi"
    Persion1.sex = "man"
    Persion1.age = 30
    Persion1.id = 56341153
 
    //給prison2賦值
    Persion2.name = "wangwu"
    Persion2.sex = "woman"
    Persion2.age = 18
    Persion2.id = 78238232
 
    fmt.Println(Persion1)
    fmt.Println(Persion2)
}

輸出結(jié)果如下

{lisi 30 man 56341153}
{wangwu 18 woman 78238232} 

三、結(jié)構(gòu)體作為函數(shù)參數(shù)

結(jié)構(gòu)體也可以作為參數(shù)傳遞給函數(shù),可以解決一些代碼的冗余問題,簡化代碼

示例

package main
 
import "fmt"
 
//結(jié)構(gòu)體聲明
type Persion struct {
    name string
    age  int
    sex  string
    id   int
}
 
func main() {
 
    //結(jié)構(gòu)體類型的變量
    var (
        Persion1 Persion //聲明 Persion1 為 Persion 類型
        Persion2 Persion //聲明 Persion2 為 Persion 類型
    )
 
    //給prison1賦值
    Persion1.name = "lisi"
    Persion1.sex = "man"
    Persion1.age = 30
    Persion1.id = 56341153
 
    //給prison2賦值
    Persion2.name = "wangwu"
    Persion2.sex = "woman"
    Persion2.age = 18
    Persion2.id = 78238232
 
    //使用函數(shù)傳遞結(jié)構(gòu)體
    printInfo(Persion1)
    fmt.Println("------------------")
    printInfo(Persion2)
}
 
//函數(shù)定義結(jié)構(gòu)體為形式參數(shù),進(jìn)行傳入
func printInfo(p Persion) {
    fmt.Println("姓名: ", p.name)
    fmt.Println("年齡: ", p.age)
    fmt.Println("性別: ", p.sex)
    fmt.Println("身份證: ", p.id)
}

輸出結(jié)果如下

姓名:  lisi
年齡:  30
性別:  man
身份證:  56341153
------------------
姓名:  wangwu
年齡:  18
性別:  woman
身份證:  78238232

四、結(jié)構(gòu)體指針

可以定義指向結(jié)構(gòu)體的指針類似于其他指針變量,格式如下

var struct_pointer *Persion

以上定的指針變量可以存儲結(jié)構(gòu)體變量的地址,查看結(jié)構(gòu)體變量的地址,可以將&符合放置于結(jié)構(gòu)體變量前

struct_pointer = &Persion1

使用結(jié)構(gòu)體指針訪問結(jié)構(gòu)體成員,可以使用.操作符

struct_pointer.title  
package main
 
import "fmt"
 
//結(jié)構(gòu)體聲明
type Persion struct {
    name string
    age  int
    sex  string
    id   int
}
 
func main() {
 
    //結(jié)構(gòu)體類型的變量
    var (
        Persion1 Persion //聲明 Persion1 為 Persion 類型
        Persion2 Persion //聲明 Persion2 為 Persion 類型
    )
 
    //給prison1賦值
    Persion1.name = "lisi"
    Persion1.sex = "man"
    Persion1.age = 30
    Persion1.id = 56341153
 
    //給prison2賦值
    Persion2.name = "wangwu"
    Persion2.sex = "woman"
    Persion2.age = 18
    Persion2.id = 78238232
 
    //使用函數(shù)傳遞結(jié)構(gòu)體的地址
    printInfo(&Persion1)
    fmt.Println("------------------")
    printInfo(&Persion2)
}
 
//定義結(jié)構(gòu)體指針形參進(jìn)行傳入
func printInfo(p *Persion) {
    fmt.Println("姓名: ", p.name)
    fmt.Println("年齡: ", p.age)
    fmt.Println("性別: ", p.sex)
    fmt.Println("身份證: ", p.id)
}

輸出結(jié)果如下

姓名:  lisi
年齡:  30
性別:  man
身份證:  56341153
------------------
姓名:  wangwu
年齡:  18
性別:  woman
身份證:  78238232

總結(jié)

結(jié)構(gòu)體是由相同類型和不同類型組成的數(shù)據(jù)集合,存儲的結(jié)構(gòu)類型是不受限制的

以上就是Go語言學(xué)習(xí)之指針的用法詳解的詳細(xì)內(nèi)容,更多關(guān)于Go語言指針的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Go之interface的具體使用

    Go之interface的具體使用

    這篇文章主要介紹了Go之interface的具體使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • Go語言指針訪問結(jié)構(gòu)體的方法

    Go語言指針訪問結(jié)構(gòu)體的方法

    這篇文章主要介紹了Go語言指針訪問結(jié)構(gòu)體的方法,涉及Go語言指針及結(jié)構(gòu)體的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • 詳解如何使用Go模塊進(jìn)行依賴管理

    詳解如何使用Go模塊進(jìn)行依賴管理

    本文將介紹Go語言中的模塊(module)概念,以及如何使用Go模塊進(jìn)行依賴管理,我們會探討模塊的基本概念、使用方法、配置和依賴關(guān)系管理等方面的內(nèi)容,需要的朋友可以參考下
    2023-10-10
  • 最新評論

    二连浩特市| 双鸭山市| 德兴市| 青川县| 平原县| 海兴县| 堆龙德庆县| 靖远县| 栾城县| 垦利县| 建湖县| 安阳市| 昭苏县| 弋阳县| 若羌县| 福清市| 巴里| 吉安县| 黄骅市| 集贤县| 锦屏县| 莆田市| 德昌县| 扶绥县| 宁陵县| 沙洋县| 南丰县| 集贤县| 西青区| 山丹县| 东乡县| 明星| 德阳市| 绥芬河市| 乾安县| 庄浪县| 七台河市| 临江市| 潜江市| 磐石市| 西充县|