三、GO语言基础

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 指针

发布了92 篇原创文章 · 获赞 12 · 访问量 5702

猜你喜欢

转载自blog.csdn.net/weixin_45413603/article/details/104635601