Go 语言基础(1)| 青训营笔记

80 阅读3分钟

这是我参加字节后端训练营的笔记,这一篇主要是先来写写Go语言的一些基础最基础的语法,既作为自己的笔记,又可以作为文档后面需要时进行查询和阅读。

就像其他语言比如C语言一样,Go也拥有多种值的类型,常见的比如字符串、整型、浮点型、布尔型等,并且字符串通过 + 直接进行连接,举个简单的例子:

package main

import "fmt"

func main() {

    fmt.Println("fu" + "shuling")

    fmt.Println("1+1 =", 1+1)
    fmt.Println("7.0/3.0 =", 7.0/3.0)

    fmt.Println(true && false)
    fmt.Println(true || false)
    fmt.Println(!true)
}

输出结果:

fushuling
1+1 = 2
7.0/3.0 = 2.3333333333333335
false
true
false

可以看到这里我们直接拼接了字符串fushuling然后打印了fushuling,这种python特性在golang中同样存在,然后我们打印了1+1与7.0/3.0,因为进行运算的值的属性不同,所以打印的值也不同,然后我们进行了一些常见的布尔操作。

变量

在Go语言中,变量需要显式声明,并且在函数调用的情况下,编译器也会对其类型进行检验,因此不能像python一样一个声明一直用。

package main

import "fmt"

func main() {

    var a = "initial"
    fmt.Println(a)

    var b, c int = 1, 2
    fmt.Println(b, c)

    var d = true
    fmt.Println(d)

    var e int
    fmt.Println(e)

    f := "short"
    fmt.Println(f)
}

输出为

initial
1 2
true
0
short

在go语言中,我们可以一次声明一个或多个变量,Go语言会自动判断已有初始变量的类型,比如var a = initial,Go语言就会直接帮我们判断出来这是一个字符串而不用指明它的类型,如果我们需要指明类型的话,形式为var 变量名 变量类型,如var b, c int = 1, 2。如果我们声明一个变量却没有给出对应的初始值,那么它的初始值就默认为零。同时,我们可以使用:=进行变量的声明,这属于一种声明的简化形式,在平时写代码中非常常见,比如var f string = "short我们就简写成了f := "short"

常量

Go支持字符、字符串、布尔和数值类型的常量。

package main

import (
    "fmt"
    "math"
)

const s string = "constant"

func main() {
    fmt.Println(s)

    const n = 500000000

    const d = 3e20 / n
    fmt.Println(d)

    fmt.Println(int64(d))

    fmt.Println(math.Sin(n))
}

输出为

constant
6e+11
600000000000
-0.28470407323754404

golang里我们使用const进行常量的声明,如const n = 500000000,同时const的语法与var类似,可以进行无缝衔接,出现在任何var语句可以出现的地方。同时常量表达式可以进行任何精度的运算,并且数值型常量没有确定的类型,直到给定类型才会进行转化。最后,一个数字可以根据上下文需要自动确定类型,非常方便,比如我们最后的例子里math.Sin 函数需要一个 float64 的参数,n 会自动确定类型。

参考

Go by Example