• go语言总结第二章


    var和const :变量和常量的声明

    var varName type 或者 varName : = value

    package and import: 导入

    func: 用于定义函数和方法

    return :用于从函数返回

    defer someCode :在函数退出之前执行

    go : 用于并行

    select 用于选择不同类型的通讯

    interface 用于定义接口

    struct 用于定义抽象数据类型

    break、case、continue、for、fallthrough、else、if、switch、
    goto、default 流程控制

    chan用于channel通讯

    type用于声明自定义类型

    map用于声明map类型数据

    range用于读取slice、map、channel数据
    大写,即为public

    常量在编译的时候就已经确定,运行时不能改变。

    go语言在声明变量时还允许省略掉关键字“var”。而用“:”取代
    。eg:count:=10

    数据超出取值范围会溢出。如var a int8=127 fmt.Println(a
    +1)//这时候输出-128

    一般位数比较多的用float64来储存。

    byte型和uint8本质是一样的,只是个别名,便于阅读程序。另外要
    注意的是要以字符型输出要先转换,字节型数据直接输出为整形
    eg:var i,j byte
    i=65//转为string(i)输出A
    j='A'//直接输出为65

    rune和int32本质是一样的,别名,便于阅读。rune是unicode编码

    指针变量初始化后的默认值的nil不是null,go中没有null

    <<为位运算符,再不溢出的情况下,<<1等于乘以2的一次方,左移10
    相当于乘以2的10次方。

    &^为标志位清除运算符,如a的二进制为00000110,b的二进制为
    00001011,则a&^b=00000100,原理为根据b上1的位置,如果在相同的
    位置a为0,则不变,如果为1改变为0,b是5 7 8位为1,a上5位为0,
    不变,7位为1,变为0,8位为0,不变,所以结果为00000100

    go语言运算在优先级相同时自左向右

    go字符串遍历分为字节数遍历和unicode遍历
    字节遍历类似for最简单的运用,下面主要看unicode遍历:
    eg:str:=“aaaa真好”
    for i, ch := range str {
    fmt.Printf("str[%d]=%v ", i, ch)
    }/*输出为:
    str[0]=97
    str[1]=97
    str[2]=97
    str[3]=97
    str[4]=30495
    str[7]=22909*/

    常量组的初始化
    const{
    a=100
    b
    c
    }
    func main(){
    fmt.Println(a)
    fmt.Println(b)
    fmt.Println(c)
    }//输出为三个100;
    原理为如果不提供初始值,将表示使用上行表达式。
    但是这种方式只在常量组试用。

    枚举:
    类似于常量组定义,不同的地方在后面加上 =iota//从0开始
    一个例子:
    const(
    _=iota//忽略掉iota为0的情况
    KB float64=1<<(10*iota)
    MB
    GB
    TB

    func main(){
    fmt.Println(KB)
    fmt.Println(MB)
    fmt.Println(GB)
    fmt.Println(TB)
    }//将显示1024 1048576 1073741824 1099511627776表示各单位为多
    少byte

    bool的初始值为false

    complex62和complex128的初始值都为0+0i。

    全局变量试用var
    局部变量可以省略var

    因为go语言是类型安全的语言,所有的类型转换全都是显式的
    int——float(float强制转换为int保留整数部分)
    string——[]byte
    string——[]int


    第二章到此结束,主要是够的基本数据类型和定义常量变量。需要特
    别注意的是iota和显式转换!
    第三章还会再接再厉!

  • 相关阅读:
    第二部分:并发工具类17->ReadWriteLock:如何快速实现一个完备的缓存
    第二部分:并发工具类16->Semaphore:如何快速实现一个限流器
    第二部分:并发工具类15->Lock和condition(下)
    一款类似B站的开源弹幕播放器,太酷了
    2021年基础知识点复习
    Autofac.Core.DependencyResolutionException: An exception was thrown while activating Castle.Proxies.MiniProgramAppServiceProxy.
    一张图解析FastAdmin中的弹出窗口的功能
    vue 关闭代码严格模式,轻松运行
    vue项目严格模式下的常见错误
    mysql下载安装包及安装步骤
  • 原文地址:https://www.cnblogs.com/lovlin/p/4665675.html
Copyright © 2020-2023  润新知