今日学习,Go基础语法等
- 三个简单游戏实践模块讲解 (1)猜谜游戏(2)在线词典(3)socks5的代理
学习:变量,数据类型,string,数组,切片,函数;for,if;指针,结构体等 3.错误处理;字符串处理(string包);json处理(Unmarshal,Marshal)encoding/json包
编辑器:VScode、Goland
特性:
- 高性能,高并发
- 丰富的标准库
- 完善的工具链
- 静态链接
- 快速编译
- 跨平台
- 垃圾回收机制
- 语法简单容易上手
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
mport "fmt" 告诉 Go 编译器这个程序需要使用 fmt 包(的函数,或其他元素),fmt 包实现了格式化 IO(输入/输出)的函数
fmt.print、fmt.println
- 直接运行:
go run example/01-hello/main.go - 先编译再运行:
go build example/01-hello/main.go
声明变量:var
自动类型推断:num := 1
常量:const PI float32 = 3.1415926
var num float64Num float64
bool: flag := flase
字符串:str := "zcw"
if - else:
if 5 % 2 == 0 {
***
} else {
}
//没有while和do while
if i := 0; i < 10; i++ {
***
}
GO语言本身的技术社区:
golang-nuts、golang-dev
参考
- 官方课程:Go语言圣经(中文版)books.studygolang.com/gopl-zh/
go build 和 go run 的区别
go build 和 go run 都用于编译运行程序。
go build 编译和运行分开,先将.go文件编译成.exe文件,再运行;
go run 编译和运行一步走,中间不产生.exe文件。
go build 的优势是将.go文件及其依赖包打包起来产生.exe文件,exe文件的运行无需go 开发环境;
go run 的优势是不产生中间文件,降低空间占用
-
Go语言继承了C语言的很多理念,包括表达式语法、控制结构、基础数据类型、调用参数传值、指针等等,同时也保留了C语言一样的编译执行方式。
-
Go语言在组织程序结构上,引入包的概念,即一个文件一个包,文件不能单独存在。
-
Go语言内存自动回收、无需开发人员管理
-
Go语言支持并发,语言上实现简单,协程(goroutine)高效利用多核优势,基于CPS并发模型
-
Go语言具有管道(channel)通信机制,通过管道,可以实现不同协程之间相互通信
-
函数可以多值返回,即
return a,b,c -
Go语言的创新,比如切片(slice)、延时执行(defer)