主頁 > 知識(shí)庫 > Golang 如何判斷數(shù)組某個(gè)元素是否存在(isset)

Golang 如何判斷數(shù)組某個(gè)元素是否存在(isset)

熱門標(biāo)簽:上海極信防封電銷卡價(jià)格 寧波語音外呼系統(tǒng)公司 仙桃400電話辦理 地圖標(biāo)注免費(fèi)定制店 鄭州智能語音電銷機(jī)器人價(jià)格 宿遷便宜外呼系統(tǒng)代理商 不封卡外呼系統(tǒng) 重慶慶云企業(yè)400電話到哪申請(qǐng) 湛江crm外呼系統(tǒng)排名

如,現(xiàn)在需要判斷命令行是否傳了參數(shù),即 os.Args[1] 是否存在

如果使用下述的判斷:

package main 
import (
 "fmt"
 "os"
)
 
func main() {
 if os.Args[1] != "" {
 fmt.Println("aaa")
 } else {
 fmt.Println("bbb")
 } 
}

會(huì)報(bào)錯(cuò):

index out of range

panic: runtime error: index out of range 
goroutine 1 [running]:
main.main()
 /root/workspace/go/testn.go:9 +0x100
exit status 2

正確處理方法:通過遍歷的方式判斷 key = 1 是否存在

package main 
import (
 "fmt"
 "os"
)
 
func main() {
 var target string        // 用來獲取最終需要的os.Args[1]
 for k, v := range(os.Args) {
 if k == 1 {        // 假設(shè)需要獲取os.Args[k], k = 1
 target = v
 }
 } 
 
 if target != "" {        // 不為空則表示os.Arg[1]存在
 fmt.Printf("os.Arg[1] = %s", target)  
 }
}

補(bǔ)充:golang怎么判斷是否傳遞了數(shù)值

起因

今天在做項(xiàng)目的時(shí)候有個(gè)需求就是狀態(tài)必須傳遞,在golang中接收到j(luò)son參數(shù)解析到結(jié)構(gòu)體中數(shù)值類型不傳遞有一個(gè)默認(rèn)的0,但是狀態(tài)也可以傳遞0,怎么來判斷是否傳遞了這個(gè)數(shù)值呢?

解決辦法

方法一:

在解析之前給結(jié)構(gòu)體默認(rèn)值,案例如下:

var jsonBlob = []byte(`[
{"Name": "Platypus", "Order": "Monotremata"}
]`)
type Animal struct {
Name string
Order string
ID
int
}
animals := Animal{ID: -9999}
err := json.Unmarshal(jsonBlob, animals)
if err != nil {
fmt.Println("error:", err)
}
fmt.Printf("%+v", animals)

方法二:

使用額外的結(jié)構(gòu)體+指針類型,如果不傳遞解析為nil而不是0,如下:

type NodeXXX struct {
Date string `json:"date"`
Count *int32 `json:"count"`
}

方法三:

別人已經(jīng)寫好了庫,自己使用就行

https://godoc.org/gopkg.in/guregu/null.v3

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • golang json數(shù)組拼接的實(shí)例
  • golang移除數(shù)組中重復(fù)的元素操作
  • golang將切片或數(shù)組根據(jù)某個(gè)字段進(jìn)行分組操作
  • golang數(shù)組-----尋找數(shù)組中缺失的整數(shù)方法
  • golang求連續(xù)子數(shù)組的最大和實(shí)例
  • golang實(shí)現(xiàn)整型和字節(jié)數(shù)組之間的轉(zhuǎn)換操作
  • Golang 如何判斷數(shù)組某個(gè)元素是否存在 (isset)

標(biāo)簽:儋州 遼寧 海南 物業(yè)服務(wù) 安康 電子產(chǎn)品 青海 西雙版納

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Golang 如何判斷數(shù)組某個(gè)元素是否存在(isset)》,本文關(guān)鍵詞  Golang,如何,判斷,數(shù)組,某個(gè),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Golang 如何判斷數(shù)組某個(gè)元素是否存在(isset)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Golang 如何判斷數(shù)組某個(gè)元素是否存在(isset)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章