Go基础

一、环境

1.安装go

下载go的安装包,go安装包下载链接

2.配置环境变量

配置GOROOT

3.配置Go env

GO111MODULE:是否启用go mod

GOROOT:安装路径

GOPATH:关键,设置为自己的golang的项目放置路径

GOPROXY:推荐https://goproxy.cn

二、新建项目

goland 点击 file->new->project

新建main.go文件,注意package为main

三、基础语法

1
2
3
4
5
package main

func main() {
println("hello go!")
}

1. 包

package 包名

  • 字母和下划线的组合
  • 文件夹下的包名保持一致

import 注意匿名引用

2. 基础类型

2.1 string

长度特殊:

字节长度:和编码无关,使用len(string)输出字符长度

字节数量:和编码有关,用编码库来计算

strings包是处理string的方法集

2.2 rune

直观理解,就是字符,不是byte,本质是int32,一个rune四个字节

2.3 bool,int,unit,float

bool:ture,false

int8,int16,int32,int64,int

uint8,uint16,uint32,uint64,uint

float32, float64

2.4 byte

字节,本质是int8

相关的包是bytes

3. 变量命名

首字母大写控制了作用域

不会做任何隐式转换

局部变量声明

1
a := 1

易错点:

声明没使用

类型不匹配

同作用域下,变量只能声明一次

4. 方法声明

格式:

1
2
3
func funeName(name string)(err error){

}

特性:支持多返回值,通过首字母大小写控制了作用域

5. 控制语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
for {

}

for index, value := range arr {

}

switch a {
case "a":
print
case "b":
print
}

6. type定义

type 名字 interface{}

里面只能有方法

是一组行为的抽象

尽量用接口,已面向接口编程

type 名字 struct{}

可以嵌套

结构体里面,自己引用自己,只能用指针

接收器:

结构体接收器 修改不了自身的状态,如果是func就用这种

指针接收器 可以修改自身的状态,struct用这种

type 名字 别的类型

type 别名 = 别的类型

7. 实现接口

需要实现对应结构的所有方法,才能实现接口。

8. 抽象思维

可以逻辑中一些可以抽象出来的逻辑,把入参构建结构体后,再把逻辑绑定到结构体上,尽量把生成的结构体由自己控制。

尽量把公共方法抽象成接口。


Go基础
https://www.zengzx.xyz/2019/09/01/01.知识架构/01.Go/01.基础/01.go基础/
作者
Eden
发布于
2019年9月1日
许可协议