内容简介:下载链接:GoLand需要登录激活,这里激活你可以选择自己破解或者购买正版!另外:创建项目是记得配置GOROOT
1:Mac环境下搭建开发环境
开发工具GoLand
下载链接: https://studygolang.com/dl
加黑的为推荐版本
GoLand需要登录激活,这里激活你可以选择自己破解或者购买正版!
另外:创建项目是记得配置GOROOT
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
后续会继续更新~~~
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Nature of Code
Daniel Shiffman / The Nature of Code / 2012-12-13 / GBP 19.95
How can we capture the unpredictable evolutionary and emergent properties of nature in software? How can understanding the mathematical principles behind our physical world help us to create digital w......一起来看看 《The Nature of Code》 这本书的介绍吧!