GO语言基础-1 | 青训营笔记

58 阅读2分钟

注:本文搬运了一些我青训营期间听课的笔记(我一般直接用注释或者记笔记本上),不保证正确性,而且有些地方可能比较乱,大家看个乐就行了。

基础语法部分

Hello World

从这个实例中我们可以看到一个用go语言写的程序所需具备的基本要素。

如果要直接运行,可以在命令行里> go run ...

如果要编译为二进制,则在命令行里> go build ... 完成后> ./main 运行

package main // 入口包/入口文件

import (
	"fmt" // 主要用于格式/字符串
)

func main() {
	fmt.Println("hello world") // 没有分号
}

变量与常量的定义

这里主要介绍了go里两种主要的变量声明方式(见第10行和第19行),可以看到在这两种变量的声明方式中,变量类型都是可省略的(如果省略则根据上下文自动推断)。这点虽然听起来有点不严谨,但是在后面的实操中可以带来不少便利,因为乱七八糟的变量类型太多了,每个都要写出来很麻烦(而且有些一下子甚至都说不上来)。

go为强类型语言,每个变量都有自己的变量类型。其中字符串是内置类型,可通过+直接拼接,也可用=比较两个字符串。

这里既然说到了变量,那就顺便说一下零值(变量的默认值)。当一个变量被赋予了内存(如被声明),但没有被显式地初始化,此时系统会给予该变量一个默认的初始值(零值)。具体可以参考这篇文章

package main

import (
	"fmt"
	"math"
)

func main() {

	var a = "initial"
	// 变量声明方式1:var 变量名 (变量类型) = 值

	var b, c int = 1, 2 // 有两个变量就必须要有两个值,否则语法错误

	var d = true

	var e float64

	f := float32(e)
	// 变量声明方式2:变量名 := (变量类型)值

	g := a + "foo"
	fmt.Println(a, b, c, d, e, f) // initial 1 2 true 0 0
	fmt.Println(g)                // initialfoo

	const s string = "constant" // 常量的声明把var改为const即可
	const h = 500000000 // 常量可以根据上下文自动确定类型
	const i = 3e20 / h
	fmt.Println(s, h, i, math.Sin(h), math.Sin(i))
}

咦?这么快1200+了?那今天的牙膏就挤到这里了