zoukankan      html  css  js  c++  java
  • go语言自动化运维【03】

    go的类型和变量
     
    1. go语言类型
    布尔值 bool: 取值 true,false
      注意:不可以用0/1来代表true 或者 false
    
    整型 int/uint 
      根据平台可能为32/64位
    
    8位整型 in8/uint8 有符号整型/无符号整型
      长度:1字节
      取值范围:-128~127/0-255
    
    字节型:byte(unit别名)
    
    浮点型:float32/float64
    
    其他值类型:
      array,struct,string
    
    引用类型:
       slice,map,chan
    
    接口类型: inteface
    
    函数类型: func
    类型零值
      声明为某种类型的默认值。
    var a int  此时a是0
    
    func main() {
      var a int
      fmt.Println(a)
    }
    2. 单个变量的声明和赋值
    go语言是类型安全,不能隐式转换,强制类型转换
    
    var <变量名称> <变量类型> #声明格式
    <变量名称> = <表达式> #赋值格式
    var <变量名称> [变量类型] = <表达式> #声明时同时赋值

    变量声明的三种方式:
    (1)传统定义
    var a int //先定义变量
    a = 1 //再赋值

    上面两步可以写成一步
    var a int = 1

    (2)类型推断式定义,由系统自动判断类型 var a = 1

    (3)简写定义
    a := 1 // 简写
     
    func main() {
    
        // bool
        // int
        // uint
        // byte
        // float32
        // float64
        var a int
        fmt.Println(a)
        var a int = 1
        fmt.Println(a)
        var b int
        b = 1
        fmt.Println(b)
    
        var c = "123"
        fmt.Println(c)
    
    }
    3. 多个变量的声明与赋值
    全局变量的声明可以使用var()的方式进行简写
    全局变量的声明不可以省略var,但可以使用并行方式
    局部变量不可以使用var()的方式简写,只能使用并行方式
    所有变量都可以使用类型推断
     var (
       aaa = 'hello'
       sss,bbb = 1,2
     )
    
    并行方式
     var a,b,c,d int
     a,b,c,d = 1,2,3,4
    
     var e,f,g,h int = 1,2,3,4 
     var e,f,g,h  = 1,2,3,4 #省略变量类型,由系统推断
     i,m,n,o := 1,2,3,4 
    
    
     _ 空白符号,表示对赋值的忽略
     比如: a,_,c,d := 1,2,3,4   #表示忽略2的赋值
     常应用在函数的返回值上面。

    例子:

    package main
    
    import "fmt"
    
    func main() {
        // float32
        // float64
        var (
            aaa      = "hello"
            sss, bbb = 1, 2
        )
        var a, b, c, d int
        a, b, c, d = 1, 2, 3, 4
    
        var e, f, g, h int = 1, 2, 3, 4
    
        i, m, n, o := 1, 2, 3, 4
    
        aa, _, cc, dd := 1, 2, 3, 4
        fmt.Println(aaa, bbb, sss, a, b, c, d, e, f, g, h, i, m, n, o)
        fmt.Println(aa, cc, dd)
    }
    4. 变量的类型转换
    go 中不存在隐式转换,所有类型转换必须显式声明
    转换只能发生在两种互相兼容的类型之间。
      类型转换的格式:
        <ValueA> [:]= <TypeOfValueA>(ValueB)
    
        <ValueA> := int(ValueB)

    比如:

    var a float32 = 100.1
    b := int(a)
    补充说明: type newint int ,这里newint并不能说是int的别名,而只是底层数据结构相同,
    在这里称为自定义类型,在进行类型转换时仍旧需要进行显示转换。
    但byte和runne确确实实为uint8和int32的别名,可以互相进行转换。
     
    课堂作业: 运行下面代码,看看会发生什么,并思考为什么?
    func main() {
    var a int = 65
    b := string(a)
    fmt.Println(b)
    }
     
     
     
     
     
  • 相关阅读:
    闲置安卓设备搭建Linux服务器实现外网访问
    Flume笔记
    动态规划算法助记
    Hexo 添加Live2D看板娘
    Oracle 助记
    搭建Discuz论坛
    逆向工程(助记)
    PL/SQL Developer连接本地Oracle 11g 64位数据库
    NSOperation的基础
    GCD基础
  • 原文地址:https://www.cnblogs.com/shanghai1918/p/12923043.html
Copyright © 2011-2022 走看看