• Go语言学习笔记(2)——变量、常量


    1. 变量(变量由字母、数字和下划线组成,且不能以数字开头!)
          1.1 第一种

         var  name type    // 未赋值时使用默认值
         name = value

         1.2 第二种: 根据所赋的值,自行判断变量类型
                          var name = value
         1.3 第三种: 省略var(这种方式只能用于函数体内,而不能用于全局变量的声明与赋值)
                           name := value         //  := 左侧的变量应该是未声明过的

          (多个变量同时声明时,至少保证有一个新变量)  

         eg:
                  var a int = 10
                  var b = 10    
                  a, c := 8, 10             //仅在函数体内使用,其中c为新变量

          1.4 多变量声明
               第一种:以逗号分隔,声明与赋值分开                

          var  a, b, c (int)
          a, b, c  =  1, 2, 3

               第二种: 直接赋值,多个变量可以是不同类型

            var a, b, c = v1, s2, n3

                第三种: 集合类型

           var (
                       name1  type1
                       name2  type2
                 )                        

    注意:如果声明了一个局部变量却没有在该代码块中使用它(单纯地赋值不算使用),此时会得到编译错误!!!
      

    2. 常量
       2.1 显式类型定义:

             const a string = "123"

            2.2 隐式类型定义:

             const a = "123"

            2.3 枚举:

            const (
                             Unknown = 0
                             Female = 1
                             Male = 2
                     )

     “不是枚举”——当常量组中的常量不指定类型和初始化值,则其类型与上一行非空常量右值相同!

            const (
                         x  uint16 = 16
                         y
                         m  =  "abc"
                         n
                     )
          // 所以,其中y是uint16类型,n是string类型

                                
    2.4 特殊常量 iota —— 一个可以被编译器修改的常量。在每一个const关键字出现时,被重置为0然后在下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1。

           const (
                          a = iota   //1
                          b = iota   //2
                          c = iota   //3
                      )

          可以简写为如下形式:    

            const (
                           a = iota      //1
                           b            //2
                           c            //3
                       )


    下面这个例子一定要认真看看:

         const (
                     a = iota      // 0
                     b            // 1
                     c            // 2
                     d = "ha"      // 独立值,iota += 1 ("中断自增"——iota依然在计数,按照行序自增。)
                     e            // "ha"   iota += 1
                     f = 100       // iota += 1
                     g            // 100  iota += 1
                     h = iota      // 7,恢复计数(必须显式恢复自增)
                     i            // 8
                  )
             fmt.Println(a, b, c, d, e, f, g, h, i)
    输出结果:0 1 2 ha ha 100 100 7 8

                               
    3. 基本数据类型
    3.1 布尔型bool:  常量true和false
    3.2 整型
       int8 有符号8位整型 (-128 到 127)       uint8 无符号8位整型 (0 到 255)
       int16 有符号16位整型 (-32768 到 32767)    uint16 无符号16位整型 (0 到 65535)
        int32、 int64、 uint32、 uint64
                                    
        其它:byte类似于uint8, rune类似于int32, uint——32或64位, int与uint大小一样,
                   uintptr 无符号整型,用于存放一个指针。
    3.3 浮点型
         float32    32位浮点数, float64
         complex64  32位实数和虚数(复数), complex128
    3.4 字符串型 string.

    ///纵有疾风起,人生不言弃///
  • 相关阅读:
    docker将jar打包镜像文件
    特性阻抗(转)
    关于三极管偏置电路的思考
    怎样理解阻抗匹配?(转)
    你要包火到几时呢
    Bluetooth Note
    今年过年没回家
    第二天(tomcat与web程序结构与Http协议与HttpUrlConnection)
    JavaIO操作(1)转换流
    canphp框架功能与特性介绍
  • 原文地址:https://www.cnblogs.com/skzxc/p/10587471.html
Copyright © 2020-2023  润新知