zoukankan      html  css  js  c++  java
  • go基础编程 day-2

    Go的常亮

    关键字: Const

    Go常亮的多个定义:

    // 定义常亮的关键字 const
    
    // 定义多个常亮
    const(
        PI = 3.14
        const1 = "1"
        const2 = 2
        const3 = 3   
    )

    全局变量的声明与赋值:

    var (
        name = "wyc"
        name1 = 1
        name2 = 2
        name3 = 3
    )

    一般类型声明:

    type (
        newType int
        type1 float32
        type2 string
        type3 byte
    )

    Go的基本类型:

    布尔型:
        - 长度 1字节
        - 取值范围: truefalse
        - 注意事项: 不可以使用数字来代表true或false
    整型: int/uint
         - 根据运行平台可能为32或64位
    8位整型:  int8/uint8
        - 长度: 1字节
        - 取值范围:  -128~127 / 0~255
    字节型: byte(uint8别名)
    16位整型:   int/uint16
        - 长度: 2字节
        - 取值范围:  -32768~32767 / 0~65535
    32位整型:   int32(rune)   int32/uint32
        - 长度: 4字节
        - 取值范围: -2^64/2~2^64/2-1/0~2^64-1
    64位整型:
        - 长度 8字节
        - 取值范围: -2^64/2~2^64/2-1/0~2^64-1
    浮点型: float32 / float64
        - 长度:  8/8字符
        - 小数位:  精确到7/15小数位
    复数类型:  complex64/complex128
        - 长度:  8/16字节
    足够保存指针的32位或64位整数型:  uintptr
    // 其他值类型:
        - array、 structstring
    // 引用类型: 
        - slice、map、chan
    
    
    // 接口函数  :   inteface
    
    // 函数接口  :   func

    类型零值:

      零值并不等于空值,而是当变量声明为某种来兴后的默认零值,通常情况下默认值为0,bool为false,string为空字符串。

    类型别名:

    type(
        byte   int8
        rune   int32
        文本   string   
    )

    别名:

    var a 文本
    b = "你好中国"

    零值:

    package main
    
    import (
        "fmt"   
    )
    
    func main() {
        var a int
        fmt.Println(a)
    }
    
    
    // 结果: 0

    math包

    math包可以检查类型是否超出范围

    math.Min   记录了一个最小值和一个最大值

    int型的最小值:

    math.MinInt8      int类型的最小值就会打印出来,    -128

    类型声明

    package main
    
    import (
        "fmt"   
    )
    
    // 类型的定义
    type (
        byte  int8
        rune int32
        文本  string   
    )
    
    func main() {
        var a 文本
        a = "你好中国"
        fmt.Println(a)
    }
    
    // 在实际应用中最好还是不要使用中文,它有可能会引起一些不必要的错误。

    单个变量的声明与赋值 and 多个变量的声明与赋值

    单个变量: 

      单个变量的声明格式:    var <变量名称> <变量类型>

           变量的赋值的格式    :  <变量名称> = <表达式>

           变量声明的同时赋值  :   var <变量名称> <变量类型> = [表达式]

    多个变量 : 

            全局变量的声明格式:   var <变量名称> <变量类型>

            全局变量的声明不可以省略 var, 但可使用并行方式

            所有变量都可以使用类型推断

            局部变量不可以使用 var() 的方式简写,只能使用并行方式

    var (
        // 常规方式
        aaa = "hello"
        // 使用并行方式以及类型推断
        w,y,c = 11,22,33
        // ccc := 3 // 不可以省略 var
    )

    多个变量:

    // 多个变量声明
    var a,b,c,d int
    
    // 多个变量赋值
    a,b,c,d = 1,2,3,4
    
    
    // 多个变量声明的同时赋值
    var w,y,c int = 1,2,3
    
    // 省略变量类型,由系统推断类型
    var w,y,c = 1,2,3
    
    // 多个变量的声明与赋值的最简的写法
    w,y,c := 11,22,33
    package main
    
    import (
       "fmt"
    )
    
    func main() {
        // var w,y,c int
        // w,y,c = 1,2,3
        w,y,c := 11,22,33
        fmt.Println(w,y,c)
    }

    // 下划线可以表示不需要的元素

    package  main
    
    import (
        "fmt"
    )
    
    func main() {
        w,_,c := 11,22,33
        fmt.Println(w,c)
    }

    变量的类型转换

    Go中不存在隐式转换,所有类型转换必须显示声明。

    转换只能发生两种相互兼容的类型之间

    类型转换的格式:

    <Value>[:] = <TypeOfValueA> (<ValueB>)
    package main
    
    import (
        "fmt"
    )
    
    func main() {
       var a float32 = 1.1
       b := int(a)
       fmt.Println(b)
    }

  • 相关阅读:
    前端面试的一道数组元素值去重问题
    数组元素前移,第一个元素放置数组末位
    Linux 查询oracle错误日志&警告日志
    CentOS 6.4 源码安装MySQL 5.6
    Oracle 表空间不足引起的问题及解决方法
    Oracle 强制中止正在执行的SQL语句
    request for member 'GetByteArrayElements'
    jni入门 eclipsecygwin+ndk
    ffmpeg结构体(二)
    ffmpeg结构体(三)
  • 原文地址:https://www.cnblogs.com/wuyongcong/p/7719549.html
Copyright © 2011-2022 走看看