欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

三、GO语言基础

程序员文章站 2022-07-14 20:32:13
...

1.变量

对存储空间起一个名字,后续使用名字对数据进行访问或者修改

package main

import "fmt"
var version string = "boss"

//函数外定义变量,也就是包级别的变量可以不使用
func main() {
    var me string
    fmt.Println(me) //在没有赋值的时候,会赋一个零值 每个类型零值都不同
    me = "name"
    //函数内的变量 声明定义后不使用会报错
    fmt.Println(me)
    fmt.Println(version)
    var name, age string = "qu", "24"
    fmt.Println(name, age)
    var (
        hight float64 = 1.7
        ages  int     = 31
    )
    fmt.Println(hight, ages)
    var (
        aa = "haha"
        ss = 22
    )
    // 省略类型 go会自己推导
    fmt.Println(aa, ss)
    //这是一个简短声明,只能在函数内部使用
    isBoy := false
    fmt.Println(isBoy)
    isBoy = true
    fmt.Println(isBoy)
    //一个变量可以多次赋值 但是只能声明一次
    var e, ee int = 1, 2
    fmt.Println(e, ee)
    e, ee = ee, e
    fmt.Println(e, ee)
    //变量值替换
}

2.常量

定义之后不可修改
声明常量 const name type
声明常量必须设定值
在括号内声明多个常量时,可以同事省略类型、值, 表示与前一个常量值相同
应用 枚举类型 iota(默认从0开始)

package main

import "fmt"
func main() {
    const NAME string = "bb"
    fmt.Println(NAME)
    //常量只能赋值一次不能多次赋值,多次赋值会报错
    //省略类型
    const i = 16
    fmt.Println(i)
    //定义多个常量(相同类型)
    const aa, bb string = "bb", "cc"
    fmt.Println(aa, bb)
    //定义多个常量(不同类型)
    const (
        dd string = "eee"
        oo int    = 16
    )
    fmt.Println(dd, oo)
    //定义多个常量,省略类型
    const (
        b = 16
        c = "ss"
    )
    fmt.Println(b, c)
    // 常量必须设置默认值
    const (
        C1 int = 1
        C2
        C3
    )
    fmt.Println(C1, C2, C3)
    //常量赋值如果类型跟值都相同,那么可以省略类型以及值
    //枚举,const+iota
    const (
        D1 = iota
        D2
        D3
        D4
    )
    fmt.Println(D1, D2, D3, D4)
    const (
        E1 = (iota + 1) * 100
        E2
        E3
        E4
        E5
    )
    fmt.Println(E1, E2, E3, E4, E5)
}

3.注释

注释分为单行注释以及多行注释
单行注释表示方法 //
多行注释表示方法/开始/结束

4.作用域

作用域指变量可以适用范围,go语言使用大括号现实的标识作用域范围,打括号内包含一连串的语句,叫做语句块。语句块可以嵌套,语句块内定义的变量不能在语句块外使用。

在同一个作用域内标识符只能被声明一次,{}用来显示声明一个作用域

作用域内定义变量只能被声明一次且变量必须使用,否则编译错误。在不同作用于可定义相同的变量,次视局部将覆盖全局
常见隐式语句块:
全语句块
包语句块
文件语句块
if、switch、for、select、case语句块

package main

import "fmt"
func main() {
    //作用域: 定义标识符可以使用的范围
    //在Go中用{}来定义作用域的范围
    //使用原则: 子语句块可以使用父语句块的标识符,但是父语句块不能使用子(或者孙)语句块的标识符
    D1 := 2
    var aa string = "bb"
    fmt.Println(D1, aa)
    {
        fmt.Println(aa)
        var aa int = 16
        fmt.Println(aa)
        D2 := 3
        fmt.Println(D1, D2)
    }
}

5.问题追踪

fmt.Print 打印不换行
fmt.Println 打印并换行
fmt.Printf 可以使用占位符
常用占位符表示
%T 打印类型
%s 字符串
%f 浮点数
%v 使用本身类型格式化 、
%t bool
%b 二进制表示
%c 相应Unicode码点所表示的字符
%d 十进制
%o 八进制
%x 十六进制 字母形式小写a-f
%X 十六进制表示 字母形式大写A-F
%p 指针

相关标签: GO语言编程 go