第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

為什么我的 struct 方法總是返回 false?

為什么我的 struct 方法總是返回 false?

Go
瀟湘沐 2021-12-07 15:14:42
我正在嘗試在返回 bool 的方法中對我的表單結(jié)構(gòu)進(jìn)行驗(yàn)證,但即使它應(yīng)該返回 true ,我也會不斷收到 false ..如果您查看Validate方法的末尾,您會看到我寫了validated := len(this.Errors) == 0哪些應(yīng)該根據(jù) Errors 映射是否包含項(xiàng)目來使“驗(yàn)證”為真或假,然后是 I return validated.當(dāng)我準(zhǔn)確填寫表格時(shí),應(yīng)該沒有錯(cuò)誤,但是當(dāng)我應(yīng)該正確時(shí)我仍然會出錯(cuò)。有人可以解釋一下嗎?這不是 Go 的工作方式嗎?表單.go:package modelsimport (    "../config"    "../util")type Form struct {    Name    string    Email   string    Phone   string    Message string    Thanks  string    ErrorHandler}func (this *Form) Validate() bool {    this.Errors = make(map[string]string)    matched := util.MatchRegexp(".+@.+\\..+", this.Email)    if !util.IsEmpty(this.Email) {        if matched == false {            this.Errors["Email"] = config.EMAIL_INVALID        }    } else {        this.Errors["Email"] = config.EMAIL_EMPTY    }    if util.IsEmpty(this.Name) {        this.Errors["Name"] = config.NAME_EMPTY    }    if util.IsEmpty(this.Phone) {        this.Errors["Phone"] = config.PHONE_EMPTY    }    if util.IsEmpty(this.Message) {        this.Errors["Message"] = config.MESSAGE_EMPTY    }    validated := len(this.Errors) == 0    if validated {        this.Thanks = config.THANK_YOU    }    return validated}errorhandler.go:package modelstype ErrorHandler struct {    Errors map[string]string}func (this *ErrorHandler) HandleErr(err string) {    this.Errors = make(map[string]string)    this.Errors["Error"] = err}這就是我嘗試調(diào)用該Validate方法的地方——在我的控制器中的一個(gè)函數(shù)中:form := &models.Form{    Name:    r.FormValue("name"),    Email:   r.FormValue("email"),    Phone:   r.FormValue("phone"),    Message: r.FormValue("message")}if form.Validate() {    // This never runs because 'form.Validate()' is always false}我不認(rèn)為這util.IsEmpty()是這里的罪魁禍?zhǔn)?.只是檢查字符串是否為空:func IsEmpty(str string) bool {    return strings.TrimSpace(str) == ""}任何幫助,將不勝感激!
查看完整描述

1 回答

?
慕妹3146593

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊

最好使用如下日志語句調(diào)試此類問題:

log.Printf("form: %v", form)

在調(diào)用之前validate,所以很清楚輸入數(shù)據(jù)的樣子。

問候, 菲利普


查看完整回答
反對 回復(fù) 2021-12-07
  • 1 回答
  • 0 關(guān)注
  • 180 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號