1:Mac环境下搭建开发环境
开发工具GoLand
下载链接: https://studygolang.com/dl
GoLand需要登录激活,这里激活你可以选择自己破解或者购买正版!
另外:创建项目是记得配置GOROOT
这样基本的搭建环境就配置好了!
2:编写第一个程序"hello world"
2.1:创建一个main.go
2.2:导入头文件
import "fmt"//导入格式化
func main() {//启动函数
fmt.Println("hello world")//打印hello world
}
这样第一份代码就写完了!也标志着我们要开始学习Go语言了!
3:Go语言基本语法与使用
数据类型分为
整形:
按长度分为: int8 int16 int32 int64
还有对应的无符号整型:uint8 uint16 uint32 uint64
浮点型:
Go语言支持两种浮点整数:
float32:最大范围约为 3.4e38,可以使用常量定义:math.MaxFloat32
floa642:最大范围约为 1.8e308,可以使用常量定义:math.MaxFloat64
布尔型:
布尔型数据只有true和false
Go语言中不允许将整型强制转换为布尔型,代码如下:
fmt.Println(int(n) * 2)
编译错误,输出如下:
cannot convert n (type bool) to type int
布尔型无法参与数值运算,也无法与其他类型进行转换
字符串:
字符串的值为双引号中的内容,可以在Go语言的源码中直接添加非ASCII码字符,代码如下:
str := "hello world"
ch := "中文"
切片--能动态分配空间
切片是一个拥有相同类型元素的可变长度序列,切片的声明方式如下:
var name []T
其中T代表切片元素类型,可以是整型,浮点型,布尔型,切片,map,函数等.
切片的元素使用"[]"进行访问,在方括号中提供切片的索引即可访问元素,索引的范围从0开始,切不超过切片的最大容量,代码如下:
a := make([]int, 3)//创建一个容量为3的整型切片
a[0] = 1//为切片元素赋值
a[1] = 2
a[2] = 3
字符串也可以按切片的方式进行操作:
str := "hello world"
fmt.Println(str[6:])
代码输出如下:
world
3.1声明变量
var a int//声明一个整型类型的变量,可以保存整数数值
var b string//声明一个字符串类型的变量
var c []float32//声明一个32位浮点切片类型的变量,浮点切片表示由多个浮点类型组成的数据结构
var d func() bool//声明一个返回值为布尔类型的函数变量,这种形式一般用于回调函数,即将函数以变量的形式保存下来,在需要的时候重新调用这个函数
var e struct{//声明一个结构体变量,拥有一个整型的x字段
x int
}
标准式
var 变量名 变量类型
批量式
var (
a int
b string
c []float32
d func() bool
e struct{
x int
}
)
3.2初始化变量
标准格式
var 变量名 类型 = 表达式
例如:游戏中玩家的血量初始值为100. 可以这样写:
var hp int = 100
这句话中,hp为变量名 类型为int hp的初始值为100
编译器推导类型的格式
例如:
var hp = 100
短变量声明并初始化
hp := 100
//ps:如果hp被声明过再使用":="时编译器会报错.代码如下"
var hp = 100
hp := 100
//编译报错如下
//no new variables on left side of :=
//提示, 在:=的左边没有新变量出现,意思就是":="的左边变量已经被声明了.短变量声明的形式在开发中例子比较多,比如:
conn, err := net.Dial("tcp","127.0.0.1:8080")
//net.Dial提供按指令协议和地址发起网络链接,这个函数有两个返回值,一个是链接对象,一个是err对象.如果是标准格式将会变成:
var coon net.Conn
var err error
conn, err = net.Dial("tcp","127.0.0.1.8080")
//因此,短变量声明并初始化的格式在开发中使用比较普遍
另外,在多个短变量声明和赋值中,至少有一个新声明的变量出现在左值中,即便其他变量名可能是重复声明的,编译器也不会报错,代码如下:
conn, err := net.Dial("tcp","127.0.0.1:8080")
conn2, err := net.Dial("tcp","127.0.0.1:8080")
3.3多个变量同时赋值
编程最简单的算法之一,莫过于变量交换,传统方法编写变量交换代码如下:
var a int = 100
var b int = 200
var t int
t = a
a = b
b = t
fmt.Println(a,b)
//但是计算机内存非常"精贵",所以大牛们就发明了另外一种算法
var a int = 100
var b int = 200
a = a ^ b
b = b ^ a
fmt.Println(a,b)
//到了Go语言时,内存不再是紧缺资源,而且写法可以更简单.使用Go的"多重赋值"特性,可以轻松完成变量交换任务;
var a int = 100
var b int = 200
b, a = a, b
fmt.Println(a,b)
3.4 匿名变量--没有名字的变量
在使用多重赋值时,如果不需要在左值中接收变量,可以使用匿名变量.
匿名变量的表现是一个"_"下划线,使用匿名变量时,只需要在变量声明的地方使用下划线替换即可
func GetData() (int,int) {
return 100, 200
}
a, _ := GetData()
_, b := GetData()
fmt.Println(a,b)
匿名函数不占用命名空间, 不会分配内存.匿名变量与匿名变量之前也不会因为多次声明而无法使用!
入门教程(一):https://www.jianshu.com/p/de26de7ca907
后续会继续更新~~~
有疑问加站长微信联系(非本文作者)