go语言基础| 青训营

39 阅读3分钟

Go语言: 1.高性能,高并发 2.语法简单,一周上手 3.丰富标准库 4.完善的工具链 5.静态链接 6.快速编译 7.跨平台 8.垃圾回收 相对于其他语言,在结尾不需要添加分号,小括号出现少,引用库不需要重复很多import,null变为nil


package 包名 import { “标准库名字” “......” }

func main(){ 主程序 }


变量定义(支持“=”比较字符串) import “math” var 变量名 = 值 (会自己选择对应变量类型) var 变量名 变量类型 = 值 (var b int = 1) 变量名 := 值

常量(根据上下文自动确定类型): const 变量名 (变量类型) = 值


if-else: if后面不用加括号,加了会自动去掉,一定要跟大括号

if 条件 { }else{}


for循环:(只有这种循环) for ; ; {}


switch(不需要加break,跑到就跳):

switch 变量名 {

case (不只是数据,字符串也支持):_________

case :_________

default:___________

}


数组: var 变量名 [个数]变量类型

len(变量名) 数组个数


切片:

变量名 := make([]变量类型,长度)

变量名 = append(变量名,内容) 添加内容到指定切片

copy(变量名,变量名) 复制切片

变量名[上端:下端] 取出切片(从0开始,不包括下端)


map(和java一样):

变量名 := make(map[key变量类型]value变量类型)

delete(变量名,对应key值) 删除


range(快速遍历)(相当于java的foreach循环,只是会多返回所在位置):

for 变量名(一般两个,可以只有一个) := range 需要遍历的变量名{}


函数(和java差不多,只是变量类型在变量名后面):

func 函数名(变量名 变量类型,----)(返回值名 返回值类型,----(只有一个可以省略括号)){}


指针(一般在函数内,作为对传入参数的修改):

func 函数名(变量名 变量类型){运算时变量名前加}

func main(){ 函数名(&变量名) }


结构体: type 名字 struct{ 变量名 变量类型 ------- } 初始化:

  1. 变量名 := 结构体名{变量名:值, }(可只赋值一部分)
  2. 变量名 := 结构体名{值, }
  3. 变量名.结构体内变量名 = 值

json处理:结构体变量名首字母均为大写时 可用jsen.Marshal(已经定义的结构体名)对其序列化 可通过转化为string类型打印出结构体中变量的名称,不转换则为16进制的编码 若想输出小写的可在结构体定义时在同行追加“json:想要的名字”


结构体方法:类似于创造java中的封装函数

func (变量名 结构体名(可选择带不带指针)) 函数名(变量名 变量类型,----)(返回值名 返回值类型,----(只有一个可以省略括号)){}


错误处理: 在返回时增加一个error类型的变量,通过判断此变量是否为nil来判断是否产生错误。由此可以清楚知道错误位置 同时在处理数据时应先判断error类,否则可能会产生空指针


时间处理(与java类似): import{“time”}

设置时间格式为t.Format(“2006-01-02 15-04-05”)与其他完全不同