• Go语言之旅:基本类型


    原文地址:https://learn-linux.readthedocs.io
    欢迎关注我们的公众号:小菜学编程 (coding-fan)

    Go 内置了以下基本类型:

    • 布尔

      • bool
    • 字符串

      • string
    • 整数

      • int int8 int16 int32 int64
      • uint uint8 uint16 uint32 uint64
    • 字节

      • byte , uint8 的别名
    • Unicode

      • rune , int32 别名
    • 浮点

      • float32 float64
    • 复数

      • complex64 complex128
    package main
    
    import (
        "fmt"
        "math/cmplx"
    )
    
    var (
        ToBe    bool        = false
        MaxInt  uint64      = 1 << 64 -1
        z       complex128  = cmplx.Sqrt(-5 +12i)
    )
    
    func main() {
        fmt.Printf("Type: %T Value: %v
    ", ToBe, ToBe)
        fmt.Printf("Type: %T Value: %v
    ", MaxInt, MaxInt)
        fmt.Printf("Type: %T Value: %v
    ", z, z)
    }
    

    例子展示了几种不同类型变量的用法。 注意到,跟 import语句 一样,变量申明可以批量写到一个代码块里。

    一般来说,int 、 uint 以及 uintptr 类型在 32 位机器上是 32 位长; 在 64 位机器上则是 64 位长。 需要使用整数时, int 类型是首选, 除非你有特别的理由一定要用 定长 或者 无符号 类型。

    零值

    变量申明时没有显式赋初始值,则默认是“  ”。

    不同的类型有不同的“  ”:

    • 对于数值类型是 0 ;
    • 对于布尔类型是 false ;
    • 对于字符串类型是 "" (空字符串);
    package main
    
    import "fmt"
    
    func main() {
        var i int
        var f float64
        var b bool
        var s string
        fmt.Printf("%v %v %v %q
    ", i, f, b, s)
    }
    

    类型转换

    表达式 ( expression ) T(v) 将值 v 转换成类型 T , 这就是所谓的 类型转换 ( type conversions )。

    这是一些数值类型转换:

    var i int = 42
    var f float64 = float64(i)
    var u uint = uint(f)
    

    或者简写成:

    i := 42
    f := float(i)
    u := uint(f)
    

    跟 C 语言有所不同, Go 在不同类型之间赋值,需要显式类型转换。 不信,将下面例子中 float64 和 unit 类型转换移除,看看发生什么?

    package main
    
    import (
        "fmt"
        "math"
    )
    
    func main() {
        var x, y int = 3, 4
        var f float64 = math.Sqrt(float64(x*x + y*y))
        var z uint = uint(f)
        fmt.Println(x, y, z)
    }
    

    类型推理

    变量类型通过右边的值推理而来。

    如果申明右边的值是有类型的,那么新变量也是一样的类型:

    var i int
    j := i  // j is an int as well
    

    如果右边只是一个数值常量,没有具体类型,那么新变量可能是 int 、 float64 以及 complex128 三种类型中的一种,取决于常量的精度。

    i := 42             // int
    f := 3.142          // float64
    g := 0.867 + 0.5i   // complex128
    

    接下来做个实验吧! 改变例子中 v 的初始值,观察它是如何影响变量类型的:

    package main
    
    import "fmt"
    
    func main() {
        v := 42     // change me!
        fmt.Printf("v is of type %T
    ", v)
    }
    

    下一步

    下一节 我们一起来看看 Go 语言 常量 。

    订阅更新,获取更多学习资料,请关注我们的 微信公众号 :

    小菜学编程

  • 相关阅读:
    mock 数据模拟
    利用css绘制三角形,半圆等形状
    页面底部固定
    Form Data格式传参
    element 页面显示效果及需要注意的点
    vue 组件加载顺序
    vue-router 导航钩子
    vue 总结
    前端开发的碎碎念
    值匹配的方式
  • 原文地址:https://www.cnblogs.com/fasionchan/p/9474107.html
Copyright © 2020-2023  润新知