亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

為什么 Go Programming 將任何以零開頭的數字視為八進制,我該如何防止這種情況發生?

為什么 Go Programming 將任何以零開頭的數字視為八進制,我該如何防止這種情況發生?

Go
慕碼人8056858 2022-06-27 17:07:05
package maintype contactInfo struct {    number int    email  string}type person struct {    firstName string    lastName  string    contact   contactInfo}func main() {    user1 := person{        firstName: "Anthony",        lastName:  "Martial",        contact: contactInfo{            number: 07065526369,            email: "[email protected]",        },    }    fmt.Println(user1)}當我為變量“數字:07065526369”分配一個值時,出現一個錯誤,說“八進制文字中的無效數字'9'”,我試圖找出一種方法來防止它通過將該數字設為基數 10 而不是以 8 為底,因為我認為 Go 會自動將任何以零開頭的數字視為八進制
查看完整描述

1 回答

?
達令說

TA貢獻1821條經驗 獲得超6個贊

即使Go 1.13引入了整數文字的更改,您int仍然會被解釋為八進制(其中不能有 '9',因此會出現錯誤消息)

八進制整數文字:前綴0oor0O表示八進制整數文字,例如0o660. 由前導后跟八進制數字
指示的現有八進制表示法仍然有效。0

任何處理電話號碼的 Go 庫都會將其存儲為字符串。
并且該數據可以比一個字符串更詳細。

例如dongri/phonenumber,將遵循ISO 3166 國家代碼標準,結構如下

type ISO3166 struct {
    Alpha2             string
    Alpha3             string
    CountryCode        string
    CountryName        string
    MobileBeginWith    []string
    PhoneNumberLengths []int}

這比 int 更安全,并提供更好的驗證。


查看完整回答
反對 回復 2022-06-27
  • 1 回答
  • 0 關注
  • 177 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號