gpt4 book ai didi

validation - Go - 用于验证的数据类型

转载 作者:IT王子 更新时间:2023-10-29 00:44:34 24 4
gpt4 key购买 nike

如何为 Go 创建一个新的数据类型,以便在创建(该类型的)新变量时检查/验证其模式?

例如,为了验证一个字符串是否有 20 个字符,我试过:

// Format: 2006-01-12T06:06:06Z
func date(str string) {
if len(str) != 20 {
fmt.Println("error")
}
}
var Date = date()

type Account struct {
domain string
username string
created Date
}

但它失败了,因为 Date 不是一个类型。

最佳答案

在您的示例中,您将 Date 定义为变量,然后尝试将其用作类型。

我猜你想做这样的事情。

package main

import (
"fmt"
"os"
"time"
)

type Date int64

type Account struct {
domain string
username string
created Date
}

func NewDate(date string) (Date, os.Error) {
// date format: 2006-01-12T06:06:06Z
if len(date) == 0 {
// default to today
today := time.UTC()
date = today.Format(time.ISO8601)
}
t, err := time.Parse(time.ISO8601, date)
if err != nil {
return 0, err
}
return Date(t.Seconds()), err
}

func (date Date) String() string {
t := time.SecondsToUTC(int64(date))
return t.Format(time.ISO8601)
}

func main() {
var account Account
date := "2006-01-12T06:06:06Z"
created, err := NewDate(date)
if err == nil {
account.created = created
} else {
fmt.Println(err.String())
}
fmt.Println(account.created)
}

关于validation - Go - 用于验证的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2636485/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com