• go语言编程学习二


    go语言编程初学二

    枚举

     枚举之一系列相关的常量,比如一个星期中每天的定义

    const (

           Sunday  =  iota

            Monday

           Tuesday

           Wednesday

           Thursday

           Friday

           Saturday

           numberofDays

    )

    同Go语言的其他符号一样,以大写字母开头的常量在包外可见,以上numberofDays为包内私有,其他的则可被其他包访问

    类型

    Go语言内置以下这些基础类型:

    布尔类型:  bool

    整型:   int8、byte、int16、int、uint、uintptr等

    浮点型:float32、float64

    复数类型: complex64、complex128

    字符串:string

    错误类型:error

    此外,go语言也支持一下这些复合类型

    指针   pointer

    数组  array

    切片   slice

    字典   map

    通道  chan

    结构体  struct

    接口   interface

    布尔类型

    var   v1   bool

    v1  =  true

    v2  :=  (1  ==  2)  //v2也会被推导为bool类型

    布尔类型不能接受其他类型的赋值,不支持自动或强制的类型转换。实例

    var   b  bool

    b  =  1    //编译错误

    b  =  bool(1)   //编译错误

    以下的用法才是正确的:

    var   b  bool

    b  =  (1 !=  0)     //编译正确

    fmt.Println("Result:",  b)   //打印结果为Result: ture

    整型

    类 型                          长度(字节)                                        值 范 围
    int8                                     1                                                -128 ~ 127
    uint8(即byte)                  1                                                   0 ~ 255
    int16                                    2                                              - 32 768 ~ 32 767
    uint16                                  2                                                  0 ~ 65 535
    int32                                    4                                                -2 147 483 648 ~ 2 147 483 647
    uint32                                  4                                                   0 ~ 4 294 967 295
    int64                                    8                                                -9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807
    uint64                                  8                                                    0 ~ 18 446 744 073 709 551 615
    int                                   平台相关                                            平台相关
    uint                                 平台相关                                              平台相关
    uintptr                             同指针                                                 在32位平台下为4字节,64位平台下为8字节

    需要注意的是int和int32 在go语言里被认为是两种不同的类型,编译器也不会帮你自动类型转换

    var   value2  int32

    value1  :=  64       //value1将会被自动推导为int类型

    value2  =  value1   //编译错误

    错误类似

    cannot use value1 (type int) as type int32 in assignment。

    使用强制类型转化可以解决这个编译错误

    value2  =  int32(value1)   // 编译通过

    数值运算

    go语言支持常规整数运算:  +   -   *  /  %

    %   和在C语言中一样是求余运算

    5   %  2  //结果为2

    比较运算

       >    <    ==   >=  <=   !=  

    i,  j  :=  1,  2

    if   i   == j  {

             fmt.Println("  i  and  j  are   equal.")

    }

    两个不同类型的整型不能直接比较,比如int8类型的数和int类型的数不能直接比较

    不过各种类型的整型变量都可以直接与字面常量进行比较

    var   i   int32、

    var  j    int64

    i,  j   =  1,   2

    if   i   ==   j    {                    // 编译错误

             fmt.Println("  i  and  j  are  equal.  ")

    if   i  ==  1  ||  j  ==  2  {        //编译通过

                fmt.Println("  i  and   j   are  equal.  ")

    }

    位运算

    运 算                       含 义                              样 例
    x << y                       左移                          124 << 2             // 结果为496
    x >> y                       右移                          124 >> 2             // 结果为31
    x ^ y                          异或                          124 ^ 2               // 结果为126
    x & y                          与                            124 & 2                // 结果为0
    x | y                           或                             124 | 2                 // 结果为126
    ^x                              取反                           ^2                       // 结果为.3

    浮点型

    浮点型用于表示包含小数点的数据,比如1.234就是一个浮点型数据

    go语言定义了两个类型float32和float64, 其中float32等价于C语言的float类型

    float64等价于C语言的double类型

    var   fvalue1  float32

    fvalue1  =  12

    fvalue2   :=   12.0   //如果不加小数点,fvalue2会被推导为整型而不是浮点型

    数组

    数组是Go语言编程中最常用的数据结构之一,数组就是指一系列同一类型的集合

    [32]byte                                      // 长度为32的数组,每个元素为一个字节
    [2*N] struct { x, y int32 }             // 复杂类型数组
    [1000]*float64                            // 指针数组
    [3][5]int                                       // 二维数组
    [2][2][2]float64                            // 等同于[2]([2]([2]float64))

  • 相关阅读:
    Vue中过度动画效果应用
    最小公倍数和最大公约数求解方法
    Vue实现双向绑定的原理以及响应式数据
    Hive SQL语法总结
    java安装配置
    Ubuntu vmware补丁
    centos6 安装tensorflow
    python hive
    python 连接 hive
    ubuntu下python通过cx_Oracle库访问oracle数据库
  • 原文地址:https://www.cnblogs.com/jiange13/p/7146523.html
Copyright © 2020-2023  润新知