美文网首页
Go语言类型之声明

Go语言类型之声明

作者: WongBynn | 来源:发表于2021-11-08 10:37 被阅读0次

    在任何程序中,我们都会进行类型的声明,这一点任何程序设计语言都是相似的。不同的类型会有不同的含义,比如:int类型可以用来表示循环的索引、时间戳、文件描述符、月份等;float64可以用来表示速度、或者温度;string类型的可以用来表示文件名称、姓名、实体的描述等;

    在Go语言中,使用type声明定义一个新的命名类型,该类型一定是底层已有的类型,如下所示:

    type name underlying-type
    

    类型的声明通常出现在包级别,这里命名的类型在整个包中可见,如果该类型的首字母大写,则其他包也可以访问它。

    下面我们一起来看个例子:

    package main
    import "fmt"
    
    type Celsius float64
    type Fahrenheit float64
    
    const (
        AbsoluteZeroc Celsius = -273.15
        FreezingC Celsius = 0
        BoilingC Celsius = 100
    )
    
    func CToF(c Celsius) Fahrenheit{
        return Fahrenheit(c*9/5 + 32)
    }
    
    func FToC(f Fahrenheit) Celsius{
        return Celsius((f-32) *5 /9)
    }
    

    在上面的示例中,我们定义了两个类型---Celsius(摄氏温度)和Fahrenheit(华氏温度),这是两种不同的计量温度单位。虽然它们使用了相同的底层float64类型,但是含义不同就不能进行直接的比较,我们必须要进行类型转换之后才能进行比较。

    数字类型间的转换、字符串和slice之间的转换也是可以的,例如:浮点数转化为整型会丢失小数部分,从字符串转换为字节([]byte)会分配一份字符串数据副本。

    命名类型的底层类型决定了它的结构和表达方式,以及它支持的内部操作集合,这些内部操作与直接使用底层类型的情况相同。

    好啦,以上就是Go语言赋值的简单介绍,与其它程序设计语言基本类似,我们可以与自己使用的语言进行比较学习,会有更深层次的理解和收获。

    如果你有任何问题欢迎与我私信交流~

    相关文章

      网友评论

          本文标题:Go语言类型之声明

          本文链接:https://www.haomeiwen.com/subject/fyduzltx.html