常春岛资源网 Design By www.syssdc.com
如,现在需要判断命令行是否传了参数,即 os.Args[1] 是否存在
如果使用下述的判断:
package main import ( "fmt" "os" ) func main() { if os.Args[1] != "" { fmt.Println("aaa") } else { fmt.Println("bbb") } }
会报错:
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 { // 假设需要获取os.Args[k], k = 1 target = v } } if target != "" { // 不为空则表示os.Arg[1]存在 fmt.Printf("os.Arg[1] = %s", target) } }
补充:golang怎么判断是否传递了数值
起因
今天在做项目的时候有个需求就是状态必须传递,在golang中接收到json参数解析到结构体中数值类型不传递有一个默认的0,但是状态也可以传递0,怎么来判断是否传递了这个数值呢?
解决办法
方法一:
在解析之前给结构体默认值,案例如下:
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)
方法二:
使用额外的结构体+指针类型,如果不传递解析为nil而不是0,如下:
type NodeXXX struct { Date string `json:"date"` Count *int32 `json:"count"` }
方法三:
别人已经写好了库,自己使用就行
https://godoc.org/gopkg.in/guregu/null.v3
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
常春岛资源网 Design By www.syssdc.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
常春岛资源网 Design By www.syssdc.com
暂无评论...
更新日志
2024年11月15日
2024年11月15日
- 山口百惠《あなたへの子守唄》日本索尼钢刻字首版[WAV分轨][1.1G]
- 群星《宝丽金20周年特别发烧版》1:1母盘直刻限量编号[低速原抓WAV+CUE][1G]
- 凤飞飞.1984-仲夏(夏艳)[WAV]
- 常安《民歌红·江南燕》DTS-ES6.1[WAV]
- 群星-时尚慢摇DJ舞曲《发烧车载中文天碟-调情》非卖品[WAV]
- 潘美辰.2008-全新重声大碟(出道20年精选纪念版)【倍特音乐】【WAV+CUE】
- 罗时丰.2002-唱歌的人(2011再生版)【贝特音乐】【WAV+CUE】
- 罗时丰.2003-唱歌的人台语精选+新歌【贝特音乐】【WAV+CUE】
- 999PUNKSTA《情绪数码故障》[Hi-Res][24bit 48kHz][FLAC/分轨][301.83MB]
- HOYO-MiX《原神-珍珠之歌4 游戏音乐》[320K/MP3][289.48MB]
- 陈崎凡《CHEN》[320K/MP3][81.13MB]
- skt都在哪一年夺冠 英雄联盟skt夺冠赛季介绍
- 炉石传说抢先体验乱斗什么时候结束 深暗领域体验乱斗结束时间
- 炉石传说抢先乱斗卡组有什么 深暗领域抢先体验乱斗卡组推荐
- 荣耀手机腕上最佳搭档 荣耀手表5首销开启