ZBLOG

type TimeConfigInfo struct { RequestId string `json:"requestId"` Addr string `json:"addr"` Port string `json:"port"` SyncPeriod int `json:"syncPeriod"` }go语言,检查如上结构体的数据,Addr是否是合法的ipv4地址,port是否是合法的端口号,SyncPeriod是否是合法的数字

在Go语言中,可以使用正则表达式和一些验证函数来检查结构体中的数据是否合法。

首先,您可以使用以下正则表达式来验证IPv4地址:

  1. import "regexp"
  2. func IsValidIPv4(address string) bool {
  3. ipPattern := `^(\d{1,3}\.){3}\d{1,3}$`
  4. match, _ := regexp.MatchString(ipPattern, address)
  5. return match
  6. }

然后,可以使用以下函数来验证端口号是否合法:

  1. import (
  2. "strconv"
  3. )
  4. func IsValidPort(port string) bool {
  5. portNum, err := strconv.Atoi(port)
  6. if err != nil || portNum < 0 || portNum > 65535 {
  7. return false
  8. }
  9. return true
  10. }

最后,对于SyncPeriod是否是合法的数字,由于类型已经定义为int,在Go语言中它将自动进行数字类型检查。

您可以根据需要在代码中调用这些函数进行相应的数据验证。例如:

  1. func CheckTimeConfigInfo(config TimeConfigInfo) bool {
  2. if !IsValidIPv4(config.Addr) {
  3. return false
  4. }
  5. if !IsValidPort(config.Port) {
  6. return false
  7. }
  8. // 对于SyncPeriod的合法性,默认已经是int类型,无需额外检查
  9. return true
  10. }

通过调用CheckTimeConfigInfo函数,并传入所要检查的TimeConfigInfo结构体实例作为参数,您就可以判断其中的Addr、Port和SyncPeriod字段是否符合合法规范了。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:http://sdn.0voice.com/?id=4586

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?