欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Go檢查結(jié)構(gòu)體中是否存在某個字段及創(chuàng)建結(jié)構(gòu)體切片或映射

 更新時間:2024年01月11日 16:24:11   作者:zhe.ink 哲京  
這篇文章主要為大家介紹了Go檢查結(jié)構(gòu)體中是否存在某個字段及創(chuàng)建結(jié)構(gòu)體切片或映射實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

驗證字段Z是否存在于結(jié)構(gòu)類型Test中

下面的代碼片段聲明了具有字段A、B和C的結(jié)構(gòu)類型Test。我們需要驗證字段Z是否存在于結(jié)構(gòu)類型Test中。

示例代碼:

package main
import (
	"log"
	"reflect"
)
func main() {
	type test struct {
		A bool
		B bool
		C bool
	}
	v := new(test)
	metaValue := reflect.ValueOf(v).Elem()
	for _, name := range []string{"A", "C", "Z"} {
		field := metaValue.FieldByName(name)
		if field == (reflect.Value{}) {
			log.Printf("Field %s not exist in struct", name)
		}
	}
}

輸出:

2009/11/10 23:00:00 Field Z not exist in struct

創(chuàng)建結(jié)構(gòu)體切片

示例代碼:

package main
import (
	"fmt"
)
type Widget struct {
	id    int
	attrs []string
}
func main() {
	widgets := []Widget{
		Widget{
			id:    10,
			attrs: []string{"blah", "foo"},
		},
		Widget{
			id:    11,
			attrs: []string{"foo", "bar"},
		},
		Widget{
			id:    12,
			attrs: []string{"xyz"},
		},
	}
	for _, j := range widgets {
		fmt.Printf("%d ", j.id)
		for _, y := range j.attrs {
			fmt.Printf(" %s ", y)
		}
		fmt.Println()
	}
}

輸出:

10  blah  foo 
11  foo  bar
12  xyz

創(chuàng)建結(jié)構(gòu)體映射

示例代碼:

package main

import "fmt"

type Emp struct {
	x int
	y []string
}

func main() {
	var list = map[string]*Emp{"e1": {1001, []string{"John", "US"}}}

	e := new(Emp)
	e.x = 1002
	e.y = []string{"Rock", "UK"}

	list["e2"] = e

	fmt.Println(list["e1"])
	fmt.Println(list["e2"])
}

輸出:

&{1001 [John US]}
&{1002 [Rock UK]}

以上就是Go檢查結(jié)構(gòu)體中是否存在某個字段及創(chuàng)建結(jié)構(gòu)體切片或映射的詳細內(nèi)容,更多關于Go結(jié)構(gòu)體檢查創(chuàng)建的資料請關注腳本之家其它相關文章!

相關文章

  • Go 如何使用原始套接字捕獲網(wǎng)卡流量

    Go 如何使用原始套接字捕獲網(wǎng)卡流量

    為了減少對環(huán)境的依賴可以使用原始套接字捕獲網(wǎng)卡流量,然后使用?gopacket?的協(xié)議解析功能,這樣就省去了解析這部分的工作量,正確性也可以得到保證,同時 CGO 也可以關閉,這篇文章主要介紹了Go 使用原始套接字捕獲網(wǎng)卡流量,需要的朋友可以參考下
    2024-07-07
  • go從指定的URL下載圖片并保存到本地的代碼實現(xiàn)

    go從指定的URL下載圖片并保存到本地的代碼實現(xiàn)

    這段代碼定義了一個名為 downloadImage 的函數(shù),其目的是從指定的URL下載圖片并保存到本地文件系統(tǒng),本文是對代碼功能的詳細描述,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-08-08
  • Go語言實現(xiàn)可選參數(shù)的方法小結(jié)

    Go語言實現(xiàn)可選參數(shù)的方法小結(jié)

    這篇文章主要為大家詳細介紹了Go語言實現(xiàn)可選參數(shù)的一些常見方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-02-02
  • Go語言開發(fā)編程規(guī)范命令風格代碼格式

    Go語言開發(fā)編程規(guī)范命令風格代碼格式

    這篇文章主要為大家介紹了Go語言開發(fā)編程規(guī)范命令風格代碼格式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 一文詳細談談GoLang的panic和error

    一文詳細談談GoLang的panic和error

    說是初識,并不是說第一次使用error和panic包,而是第一次特地去了解golang中的這兩個機制,下面這篇文章主要給大家介紹了關于如何通過一文詳細談談GoLang中panic和error的相關資料,需要的朋友可以參考下
    2022-12-12
  • golang Goroutine超時控制的實現(xiàn)

    golang Goroutine超時控制的實現(xiàn)

    日常開發(fā)中我們大概率會遇到超時控制的場景,比如一個批量耗時任務、網(wǎng)絡請求等,本文主要介紹了golang Goroutine超時控制的實現(xiàn),文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2023-09-09
  • 一文帶你了解Golang中select的實現(xiàn)原理

    一文帶你了解Golang中select的實現(xiàn)原理

    select是go提供的一種跟并發(fā)相關的語法,非常有用。本文將介紹?Go?語言中的?select?的實現(xiàn)原理,包括?select?的結(jié)構(gòu)和常見問題、編譯期間的多種優(yōu)化以及運行時的執(zhí)行過程
    2023-02-02
  • Golang標準庫syscall詳解(什么是系統(tǒng)調(diào)用)

    Golang標準庫syscall詳解(什么是系統(tǒng)調(diào)用)

    最近在研究go語言,發(fā)現(xiàn)go語言系統(tǒng)調(diào)用源碼只有調(diào)用函數(shù)的定義,今天通過本文給大家分享Golang標準庫syscall詳解及什么是系統(tǒng)調(diào)用,感興趣的朋友一起看看吧
    2021-05-05
  • Go語言實現(xiàn)基于websocket瀏覽器通知功能

    Go語言實現(xiàn)基于websocket瀏覽器通知功能

    這篇文章主要介紹了Go語言實現(xiàn)基于websocket瀏覽器通知功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Go語言中的速率限流策略全面詳解

    Go語言中的速率限流策略全面詳解

    這篇文章主要為大家介紹了Go語言中的速率限流策略全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11

最新評論