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

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

熱門(mén)標(biāo)簽:外呼系統(tǒng)顯本地手機(jī)號(hào) excel地圖標(biāo)注分布數(shù)據(jù) 百度地圖標(biāo)注后傳給手機(jī) 涿州代理外呼系統(tǒng) 電話機(jī)器人軟件免費(fèi) 阿克蘇地圖標(biāo)注 壽光微信地圖標(biāo)注 評(píng)價(jià)高的400電話辦理 外呼系統(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

正確處理方法:

通過(guò)遍歷的方式判斷 key = 1 是否存在

package main 
import (
 "fmt"
 "os"
)
 
func main() {
 var target string                             // 用來(lái)獲取最終需要的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中的正則匹配判斷元素是否在slice里或者數(shù)組里

1、正則匹配

package main 
import (
 "fmt"
 "regexp"
) 

func main() { 
    //pattern := "\\d+"     //反斜杠要轉(zhuǎn)義
 pattern := "[a-zA-Z]"   //匹配字母
 str := "a1.22.35.4"
 result, _ := regexp.MatchString(pattern, str)
 fmt.Println(result)   //true
}

2、判斷元素是否在slice里或者數(shù)組里

package main 
import "fmt" 
import "github.com/wxnacy/wgo/arrays" 
//go get github.com/wxnacy/wgo/arrays   安裝包 

func main() {
 str := "342"
 var numbers []string
 numbers = append(numbers, "3332", "342", "ssddd", "ssss", "%%%%") 
 index := arrays.ContainsString(numbers, str)
 if index == -1 {
  fmt.Printf("not exists") //-1說(shuō)明不存在
 } else {
  fmt.Println(index) //存在則會(huì)返回元素的下標(biāo) 
 }
}

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

您可能感興趣的文章:
  • Golang 空map和未初始化map的注意事項(xiàng)說(shuō)明
  • golang 函數(shù)返回chan類(lèi)型的操作
  • Go語(yǔ)言的Channel遍歷方法詳解
  • Golang 拷貝Array或Slice的操作
  • 基于Go Int轉(zhuǎn)string幾種方式性能測(cè)試
  • Go語(yǔ)言中break label與goto label的區(qū)別
  • Go 實(shí)現(xiàn)英尺和米的簡(jiǎn)單單位換算方式

標(biāo)簽:梅河口 重慶 蘭州 欽州 汕頭 雞西 銅川 吐魯番

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