搭建开发环境
安装 Go
下载集成环境 GoLand
运行 HelloWorld
创建项目
编写代码
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello World")
}
运行结果:
Hello World
Process finished with
the exit code 0
基础语法
主要有:变量、if else、switch、for(range)、数组、切片、map、函数、指针、结构体(结构体函数)、错误处理、字符串、JSON 处理(序列化&反序列化)、时间处理、数字解析、进程信息
变量
声明变量的时候,一般会自动推导变量类型,也可以显示定义变量类型
方式一:var 关键字
var 变量名 类型
例如:
var str string
var a = 1
var (
x int
y int
)
var (
m = 1
n = 2
)
方式二::=
示例:
func main() {
a := 1
b := "abc"
fmt.Println(a, b)
}
for
for {} 死循环
for {
fmt.Println("hello world")
}
range
示例:
nums := [3]int{1,2,3}
for index, num := range nums {
fmt.Println(index)
fmt.Println(num)
}
结构体
结构体方法
示例:
package main
import "fmt"
type user struct {
name string
password string
}
func (u *user) setName(name string) {
u.name = name
}
func main() {
a := user{"caiNiao", "1234"}
fmt.Println(a)
a.setName("caiJi")
fmt.Println(a)
}
{caiNiao 1234}
{caiJi 1234}
Process finished with the exit code 0
JSON 处理
包含序列化与反序列化
type userInfo struct {
Name string `json:"name"`
Age int `json:"age"`
Hobbies []string `json:"hobbies"`
}
序列化
a := userInfo{"caiNiao", 18, []string{"Java", "Go"}}
buf, err := json.Marshal(a)
if err != nil {
return
}
fmt.Println(string(buf)) // 转为string格式,否则打印二进制码
{"name":"caiNiao","age":18,"hobbies":["Java","Go"]}
Process finished with the exit code 0
反序列化
b := userInfo{}
err = json.Unmarshal(buf, &b)
if err != nil {
return
}
fmt.Println(b)
{caiNiao 18 [Java Go]}
Process finished with the exit code 0