文章目录
一、Go语言简介
Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。
1.优势
- 兼顾C语言级别的编译、运行效率,容易部署,PHP级别的开发效率
- 强大的标准库,内置高效的垃圾回收机制
- 简单的并发编程,goroutine和channel极易上手
- 静态类型语言,拥有强大的编译检查、严格的编码规范
- 背景强大,由三位骨灰级大师创造,google公司运营维护
2.劣势
- 没有异常处理,只有Error
- 依赖管理(已解决√) 1.11推出GoModules
- 缺少框架(已解决√)Gin、Beego、Echo…等等
- 无泛型(正在解决。。。)官博确认正在考虑泛型设计,最快在1.18测试版中加入
3.前景
- 在云计算、微服务、基础后端软件上具有强大优势
- 得到诸多大厂的"青睐",很多部门由java转golang,新公司甚至直接使用golang
- 优秀开源项目不断涌现,以docker和k8s为代表
二、数据集的导入及编辑
1.包及其导入
- 点操作
import (."fmt")
//之后调用这个包函数时,可以省略前缀包名
Println("hello world")
- 别名操作
import (f"fmt")
f.Println("hello world")
- _ 操作
_ 操作只是引入该包,当导入一个包时,它所有的init()函数就会被执行,无法通过包名调用包中的导出函数,只是为了简单地调用其init()函数。
2.变量
//变量声明
//1.指定变量类型,声明后不赋值
var a int
a=12
//2.根据值自动推导变量类型
var b=12
//3.使用:=直接取代var关键字和变量类型
c:=10
//4.多变量声明中用于声明全局变量的写法
var (
vname1 v_type1
vname2 v_type2
)
//匿名变量:_(下划线)是特殊的变量名,任何赋予的值都会被丢弃
_ ,b := 34,35
3.预定义常量
iota是一个常量计数器,可以认为是一个被编译器修改的常量,每个const关键字出现时被重置为0,然后在下一个const出现前,每出现一次iota,其代表的数字会自动加1,可以用于枚举。
package main
import "fmt"
func main(){
const(
a=iota
b
c
)
fmt.Println(a,b,c)
}
//输出0 1 2
4.基础数据类型
- 布尔类型不能接受其他类型的赋值,不支持自动或强制的类型转换。
- int和int32在Go语言中被认为是两种不同的类型,但可以使用强制类型转换。
- 复数的表示
package main
import "fmt"
func main(){
var v1 complex64
v1=3.2+12i
v2 :=3.2+12i
v3:=complex(3.2,12)
//获取实部和虚部
fmt.Println(real(v1),imag(v1))
}