这是我参与「第五届青训营 」笔记创作活动的第1天,今天主要学习了Go语言环境的配置以及相关的基础语法。
1、go语言环境配置
1.1、下载go安装语言(SDK)
下载地址如下(Downloads - The Go Programming Language (google.cn)
然后根据自己电脑的处理器型号选择对应的安装包即可,此处我选择的是:
下载完成后,双击安装,可以选择自己的安装位置,然后直接一路next即可。
安装完成后,还需要配置相应的环境变量,
还需要在用户变量和系统变量中设置添加相应的变量,具体位置以自己的安装位置为准。
环境变量配置完成之后可以通过在cmd窗口输入''go version'' 如果可以获取go的相应的版本信息,则说明安装正确。
1.2、配置相Goland环境
可以通过下载Vscode或者Goland配置相应的环境,其中Goland因为是集成的开发环境,所以使用起来相比Vscode可能更为简单,Vscode需要自己下载相应go语言插件。
[Goland可以从官网下载](GoLand by JetBrains: More than just a Go IDE),然后可以使用30天免费使用或者申请学生账号使用。安装的时候除了选择安装位置外其余的直接无脑安装即可。当然,要跑起来一个go语言项目,还需要配置goland中的GOROOT和GOPATH,
其中GOROOT其实就是所安装的go的sdk,而GOPATH则是所构建的go项目工程的文件位置。
都配置成功后,就可以运行go语言项目了。
1.3、配置Vscode环境
下载vscode并安装,链接如下:Visual Studio Code - Code Editing. Redefined
选择安装位置后直接无脑安装即可,如果看英文不习惯,可以安装对应的go插件
一般来说,使用vscode运行go语言前要配置好GOROOT和GOPATH等变量,配置方法如上一小节,在运行调试程序的时候还会出现的一个错误就是库的安装出错,这个时候可能是因为访问不了github,所以可能需要翻墙,还有就是可以在cmd中输入下面两行命令:
go env -w GO111MODULE=on
go env -w GOPROXY=goproxy.io,direct
之后运行对应程序,若需要安装库,则将对应的库进行安装即可。
运行程序,如果能够成功输出,则说明环境配置成功。
至此,go语言环境配置就完成了,可以愉快的写代码了。
2、go语言基础
Go语言是由谷歌开发的一个开源的编译型的静态语言,它的特点是语法简单易学、开发效率高、执行性能好、天生支持并发,是真正的企业级编程语言。它有着简单易学,代码风格统一,开发效率高等优点。Go 语言提供了一套格式化工具——go fmt。一些 Go 语言的开发环境或者编辑器在保存时,都会使用格式化工具进行修改代码的格式化,这样就保证了不同开发者提交的代码都是统一的格式。
2.1、最简单语言结构
go语言的hello world程序结构如下:
package main
import "fmt"
func main() {
/* 这是我的第一个简单的程序 */
fmt.Println("Hello, World!")
}
go程序在第一行指明了文件属于哪个包,注释的形式与c++一样,import指明了程序需要使用的包。
2.2、变量类型
跟c++类似,go有着布尔型,数字类型,字符串类型,派生类型等数据类型。
2.3、变量类型定义
import "fmt"
func main() {
var a string = "Runoob"
fmt.Println(a)
var b, c int = 1, 2
fmt.Println(b, c)
}
定义一个变量名前加上一个var,对应的类型放在变量名字后面,(也可以省略类型名) 还可以使用下面方式定义变量
v_name := value
2.4、条件语句
相比于C++,布尔表达式不用()括起来。
package main
import "fmt"
func main() {
/* 定义局部变量 */
var a int = 10
/* 使用 if 语句判断布尔表达式 */
if a < 20 {
/* 如果条件为 true 则执行以下语句 */
fmt.Printf("a 小于 20\n" )
}
fmt.Printf("a 的值为 : %d\n", a)
}
2.5、循环语句
for init; condition; post { }
init: 一般为赋值表达式,给控制变量赋初值
condition: 关系表达式或逻辑表达式,循环控制条件;
post: 一般为赋值表达式,给控制变量增量或减量。
2.6、数组与切片
Go 语言数组声明需要指定元素类型及元素个数,语法格式如下:
var variable_name [SIZE] variable_type
数组初始化如下:
var balance = [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
如果数组长度不确定,可以使用 ... 代替数组的长度,编译器会根据元素个数自行推断数组的长度:
var balance = [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
Go语言中切片是对数组的抽象,因为数组的长度是固定不变的,这也限制了数组的应用范围,在一些特定的场景中这是不适用的,切片是GO语言中一种灵活的,功能强悍的内置类型切片,其长度不是固定的,是可以进行动态改变的,和c++中的vector有点像。 其声明可以如下:
var identifier []type
切片初始化:
s :=[] int {1,2,3 }
文章干货不多,记录学习过程,希望可以一起进步呀!!!