登录
首页 >  Golang >  Go问答

Go 语言如何区分八进制和十进制数字,并避免误解?

来源:stackoverflow

时间:2024-02-23 19:57:26 346浏览 收藏

哈喽!今天心血来潮给大家带来了《Go 语言如何区分八进制和十进制数字,并避免误解?》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!

问题内容

package main

type 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)
}

当我为变量“number: 07065526369”分配一个值时,出现错误,提示“八进制文字中的数字‘9’无效”,我试图找到一种方法来通过将该数字设置为基数来防止出现这种情况10 而不是基数 8,因为我认为 go 会自动将任何以 0 开头的数字视为八进制


解决方案


即使 Go 1.13integer literals 中引入了更改,您的 int 仍会被解释为八进制(其中不能有“9”,因此会出现错误消息)

八进制整数文字:前缀 0o0o 表示八进制整数文字,例如 0o660
由前导 0 后跟八进制数字表示的现有八进制表示法仍然有效。

任何处理电话号码的 go 库都会将其存储为字符串。
而且该数据可以比一个字符串更详细。

例如 dongri/phonenumber 将遵循 ISO 3166 COUNTRY CODES 标准,with a struct like

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

这比 int 更安全,并且提供更好的验证。

今天关于《Go 语言如何区分八进制和十进制数字,并避免误解?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>