Go语言环境搭建

Go 语言反对以下零碎Linux,FreeBSD,Mac OS,Windows。
Go官网安装包地址:https://golang.org/dl/。
Google安装包地址:https://golang.google.cn/dl/。

测试是否装置胜利

E:\Go>go versiongo version go1.16.2 windows/amd64

Go我的项目的组成部分:

  • 包申明
  • 引入包
  • 函数
  • 变量
  • 语句 & 表达式
  • 正文

新建test.go,切换到文件目录,执行

go run test.go

运行test.go文件

package mainimport "fmt// 1.引入fmt包(实现了格式化 IO(输出/输入))func main() {/* 1.func main 是程序开始执行的函数。2.如果有init() 函数则会先执行该函数*/   fmt.Println("Hello, World!")}

1.package main 定义了包名。
2.在源文件中非正文的第一行指明这个文件属于哪个包,如:package main。
3.package main示意一个可独立执行的程序,每个 Go 应用程序都蕴含一个名为 main 的包。

生成生成二进制文件

go build test.go

格式化字符串 fmt.Sprintf

Go 语言中应用 fmt.Sprintf 格式化字符串并赋值给新串

package mainimport "fmt"func main(){    // %d 示意整型数字,%s 示意字符串    var code=11    var date="2020-12-31"    var url="code=%d&date=%s"    var target=fmt.Sprintf(url,code,date)    fmt.Println(target)}//code=11&date=2020-12-31

数据类型

布尔型 :true 或者 false。
数字类型:整型 int 和浮点型 float32、float64。
字符串类型:字符串就是一串固定长度的字符连接起来的字符序列。
派生类型:

  • (a) 指针类型(Pointer)
  • (b) 数组类型
  • (c) 结构化类型(struct)
  • (d) Channel 类型
  • (e) 函数类型
  • (f) 切片类型
  • (g) 接口类型(interface)
  • (h) Map 类型
    //布尔型    var a bool = true    fmt.Println(a)    //数字类型:    var b int = 1    fmt.Println(b)    //字符串类型:    var c string = "躲躲"    fmt.Println(c)    //nli类型 nil的意思是无,或者是零值。    //nil是预约义的标识符,代表指针、通道、函数、接口、映射或切片的零值,也就是预约义好的一个变量    var a1 *int;    var a2 []int;    var a3 map[string] int;    var a4 chan int;    var a5 func(string) int;    var a6 error; // error 是接口    fmt.Println(a1,a2,a3,a4,a5,a6)    //省略 var, 留神 := 左侧如果没有申明新的变量,就产生编译谬误    //var value int    //value:='132' //报错  syntax error: unexpected :=, expecting }    /*    value1 :=21 //不会报错    fmt.Println(value1)

多变量申明

    var b1,b2,b3 = 1,2,3    fmt.Println(b1,b2,b3)    b4,b5,b6 :=4,5,6 //不应该是曾经申明的,否则会报错    fmt.Println(b4,b5,b6)

申明全局变量

    var (        b7 int        b8 int        b9 int    )    fmt.Println(b7,b8,b9)

替换两个变量

    var c1,c2 = 2,10    c1,c2 = c2,c1  //10,2    fmt.Println(c1,c2)

空白标识符_

    _,c2 = 10,2    fmt.Println(c2)

语言常量

常量是一个简略值的标识符,在程序运行时,不会被批改的量。常量中的数据类型只能够是布尔型、数字型(整数型、浮点型和复数)和字符串型。

const identifier [type] = value
    //显式类型定义    const d1 string = "123"    //隐式类型定义    const d2 = "1234"

多个雷同的类型能够定义为:

    //多个雷同的类型能够定义为:    const name1,name2 = "詹","躲躲"    fmt.Println(d1,d2,name1,name2) //123 1234 詹 躲躲

常量利用

    const WIDTH,HEIGHT = 10,20    var area int    area = WIDTH*HEIGHT    fmt.Printf("面积为: %d",area) //面积为:200

常量枚举

    const (        Unknown = 0        Female = 1        Male = 2    )    fmt.Println(Unknown,Female,Male)

内置函数  len(), cap(), unsafe.Sizeof()函数

    const (        az = "abc"        bz = len(az)        cz = unsafe.Sizeof(a)    )    fmt.Println(a,b,c) 

iota,非凡常量

能够认为是一个能够被编译器批改的常量。iota 在 const关键字呈现时将被重置为 0(const 外部的第一行之前),const 中每新增一行常量申明将使 iota 计数一次(iota 可了解为 const 语句块中的行索引)。

    const (        f1 = iota //计数 iota+=1  --->0        f2        //计数 iota+=1  --->1        f3 = iota //计数 iota+=1  --->2        f4 = "12" //独立值  --->12        f5 = true //独立值  --->true        f6 = 100  //独立值  --->100        f7 = iota  //计数 iota+=1  --->6    )    fmt.Println(f1,f2,f3,f4,f5,f6,f7) //0 1 2 12 true 100 6

算术运算符

    var g1,g2 = 10,20    //加法    fmt.Println(g1+g2) //30    //减法    fmt.Println(g1-g2) //-10    //乘法    fmt.Println(g1*g2) //200    //除法    fmt.Println(g1 / g2) //0    //求余    fmt.Println(g1%2) //0    //自增    g1++    fmt.Println( g1 ) //11    //自减    g1--    fmt.Println( g1 ) //10

关系运算符

    fmt.Println(123==23) //false    fmt.Println(123>23) //true    fmt.Println(123<23) //false    fmt.Println(123!=23) //true

逻辑运算符

    var h1 bool = true    var h2 bool = false    fmt.Println((h1 && h2)) //false    fmt.Println((h1 || h2)) //true    fmt.Println(!(h1 && h2)) //true

运算符优先级

    /*    优先级     运算符    5     * / % << >> & &^    4     + - | ^    3     == != < <= > >=    2     &&    1     ||    */

条件判断

    var i = 2    if i>1 {        fmt.Println("返回真")    }else{        fmt.Println("返回假")    }

switch语句

    var grade string = "A"    var score int = 90    switch score {        case 90: grade ="A"        case 80: grade ="B"        case 70: grade ="C"        case 60: grade ="D"        default: grade ="D-"        }    switch grade {        case "A":         fmt.Println("你的问题为:优良")        case "B":         fmt.Println("你的问题为:良好")        case "C":         fmt.Println("你的问题为:良好")        case "D":        fmt.Println("你的问题为:及格")        default:         fmt.Println("你的问题为:不及格")        }    //你的问题为:优良    //fallthrough    var j bool = true        switch j{        case true:         fmt.Println(true) //true        fallthrough        case false:         fmt.Println(false) //false        fallthrough        case true:         fmt.Println(true) //true        fallthrough        default:        fmt.Println(false)    //false    }

元气满满的一天。今天持续打卡,持续开启GO之旅。

本文正在参加「掘金 2021 春招闯关流动」, 点击查看 流动详情