今日学习,Go基础语法 | 青训营笔记

84 阅读2分钟

今日学习,Go基础语法等

  • 三个简单游戏实践模块讲解 (1)猜谜游戏(2)在线词典(3)socks5的代理

学习:变量,数据类型,string,数组,切片,函数;for,if;指针,结构体等 3.错误处理;字符串处理(string包);json处理(Unmarshal,Marshal)encoding/json包

编辑器:VScode、Goland

特性:

  1. 高性能,高并发
  2. 丰富的标准库
  3. 完善的工具链
  4. 静态链接
  5. 快速编译
  6. 跨平台
  7. 垃圾回收机制
  8. 语法简单容易上手
package main

import "fmt"

func main() {
	fmt.Println("hello world")
}

mport "fmt"  告诉 Go 编译器这个程序需要使用 fmt 包(的函数,或其他元素),fmt 包实现了格式化 IO(输入/输出)的函数 fmt.printfmt.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 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)