Go 语言入门指南:基础语法和常用特性解析| 青训营

138 阅读2分钟

配置环境

GO 项目中,一般来说它的工作目录结构是这样的:

  • bin目录:包含了可执行程序,注意是可执行的,不需要解释执行。
  • pkg目录:包含了使用的包或者说库。
  • src目录:里面包含了go的代码源文件,其中仍按包的不同进行组织。

hello world

package main //每一个 Go 程序必须由一个 package 声明,各种各样的包是Go 程序组织和复用代码的方式。

import "fmt" //import 关键字 能从其他的 packages 引入代码为我所用, fmt 包其实是英文 format 的缩写,顾名思义,这个包实现了输入和输出的格式化。

func main() { //func 定义了一个函数块,后面是函数名,所以这个函数叫 ​​main​​ 函数,()内可以包括零个或多个参数,括号后可以有返回类型。”{}“是个函数体。本例中的函数没有参数,也没有返回值,只有一个打印语句。

fmt.Println("hello world") //该声明由三个部分组成。 首先,我们访问 fmt 包中的另一个函数 Println(即 fmt.Println 部分,Println 表示打印行)。 然后我们创建一个包含 Hello World 的新字符串,并以该字符串作为第一个也是唯一的参数调用(也称为调用或执行)该函数。

}

申明

变量

var a =

f :=

常量

const =

if-else

if后面没有括号

循环

只有for

数组

var a [5]int

切片

s := make([]string, 3)

s = append(s,"d")//追加元素,()里的s是赋值回去

c := make([]string, len(s))

copy(c,s)

fmt.Println(s)//{a b c d e f}

fmt.Println(s[2:5])//{c d e}

fmt.Println(s[:5])//{a b c d e}

fmt.Println(s[2:])//{ c d e f}

 

map类似字典

m := make{map[string]int}//[]是key类型,后面是value类型

m["one"] = 1

fmt.Println{m["unknow"]//0

 

r,ok := m["unkonw"]

fmt.Println(r,ok)//0 false

 

delete(m,"one")

 

无序 随机输出

 

指针

 

fun add2ptr(n *int){

*n += 2

}//一定要用指针,否则+2无效

 

add2ptr(&n)

错误处理

返回值加error,用if判断error是否存在

字符串操作

Contains:判断一个字符串是否包含另一个字符串 Count:字符串计数 Index:查找某个字符串的位置 Join:连接多个字符串 Repeat:连接多个字符串

字符串格式化

Println:打印多个字符串并换行

Printf

%v打印值 %+v打印字段名字和值 %#v结构体构造的整个名称和字段名字和值

JSON处理

json.Marshal数列化 json.Unmarshal反数列化到空的变量

时间处理

now := time.Now()//现在的时间 time.Unix时间戳

字符串和数字之间的转换

"strconv"包

n,_ := strconv.ParseInt("111",10,64)//(字符串,10进制,精度64位的整数)

Atoi:快速转成十进制