record 2

作者: 黑键手记 | 来源:发表于2019-06-24 14:35 被阅读0次

    一、常用变量类型

    boolean
    string
    int  int8 int16 int32 int64
    uint uint8 uint16 uint32 uint64
    float32 float64
    complex64 complex128
    

    好啦,不用都记住了,其实
    我们还是常用 boolean string int uint 这几个
    况且这些东西,我们用的多了就会越来越熟悉了

    其中 int uint 他们的占位 是根据系统架构来决定的,比如我的电脑是 64 位的,那么使用了 int 或者 uint 他们就会占用64位,系统架构是32位的亦然。

    二、除了相同类型能够直接赋值,任何类型都不能够进行 隐式类型转换,必须要进行显示类型转换才行

    看例子就行了

    例子1

        package testvariable
        import (
           "fmt"
           "testing"
                 )
        func TestVariable(t *testing.T){
            var a int32=1
            var b int64
            b=a
            fmt.Println(a,b)
        }
    

    请注意,这样的写法是错的


    int32 向 int64 进行转换是不可以滴

    例子2

      package testvariable
      import(
        "fmt"
        "testing"
      )
      //使用 type 对 int64进行了别称
      type MyInt int64
      func TestVaraiable(t *testing.T){
          var a MyInt=1
          var b int64
          b=a
          fmt.Println(a,b)
      }
    

    然后再看看结果

    定义了相同类型的别称也是不能做隐式转换的
    所以,隐式转化就别想了,直接显示转化吧
        package testvariable
        import(
            "fmt"
            "testing"
        )
       func TestVariable(t *testing.T){
            var a int32=1
            var b int64
            b=int64(a)
            fmt.Println(a,b)
      }
    
    显示转化方法

    三、指针

    go 作为一个高级语言,其实有一个特点,就是它能够获得变量的指针,但是他仅仅只能获得,并不能对指针进行运算,这点其实就有点不爽了,毕竟 当初玩 C 的时候,改改单机游戏的“金币值”还是蛮爽的呢。

    废话少说啦,来看看再程序中怎么去获得变量的指针呢?

    无耻剧透:使用&(取值符)即可

      package testvariable
      import(
        "fmt"
        "testing"
      )
      func TestVariable(t *testing.T){
       a:=1
      //获得 a 的地址
      aPtr:=&a
      fmt.Print(a,aPtr) 
      }
    
    指针

    现在我们尝试对指针进行运算,看看报什么错


    不能和int 类型的数据做运算

    指针告一段落

    四、string

    记住一点就行了,string 如果没有被赋值,那么他不是 nil(空),而是""
    看示例吧

        package testvariable
        import(
            "fmt"
            "testing"
        )
        func TestVariable(t *testing.T){
           var a string
            fmt.Println("***"+a+"***")   
            fmt.Println(len(a))
            if fmt==""{
              fmt.Println("a是\"\"")  
          }else{
              fmt.Println("a不为空")
          }
      }
    
    string的初始空值

    ok,第二篇记录就到这里,自勉

    相关文章

      网友评论

          本文标题:record 2

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