Go语言环境配置及基础语法|青训营笔记

123 阅读5分钟

这是我参与「第五届青训营 」笔记创作活动的第1天,今天主要学习了Go语言环境的配置以及相关的基础语法。

1、go语言环境配置

1.1、下载go安装语言(SDK)

下载地址如下(Downloads - The Go Programming Language (google.cn)

然后根据自己电脑的处理器型号选择对应的安装包即可,此处我选择的是: image.png 下载完成后,双击安装,可以选择自己的安装位置,然后直接一路next即可。

安装完成后,还需要配置相应的环境变量,

image.png

还需要在用户变量和系统变量中设置添加相应的变量,具体位置以自己的安装位置为准。

image.png

环境变量配置完成之后可以通过在cmd窗口输入''go version'' 如果可以获取go的相应的版本信息,则说明安装正确。

image.png

1.2、配置相Goland环境

可以通过下载Vscode或者Goland配置相应的环境,其中Goland因为是集成的开发环境,所以使用起来相比Vscode可能更为简单,Vscode需要自己下载相应go语言插件。

[Goland可以从官网下载](GoLand by JetBrains: More than just a Go IDE),然后可以使用30天免费使用或者申请学生账号使用。安装的时候除了选择安装位置外其余的直接无脑安装即可。当然,要跑起来一个go语言项目,还需要配置goland中的GOROOT和GOPATH,

image.png

其中GOROOT其实就是所安装的go的sdk,而GOPATH则是所构建的go项目工程的文件位置。

image.png

都配置成功后,就可以运行go语言项目了。

image.png

1.3、配置Vscode环境

下载vscode并安装,链接如下:Visual Studio Code - Code Editing. Redefined

选择安装位置后直接无脑安装即可,如果看英文不习惯,可以安装对应的go插件

image.png

一般来说,使用vscode运行go语言前要配置好GOROOT和GOPATH等变量,配置方法如上一小节,在运行调试程序的时候还会出现的一个错误就是库的安装出错,这个时候可能是因为访问不了github,所以可能需要翻墙,还有就是可以在cmd中输入下面两行命令:

go env -w GO111MODULE=on

go env -w GOPROXY=goproxy.io,direct

之后运行对应程序,若需要安装库,则将对应的库进行安装即可。

运行程序,如果能够成功输出,则说明环境配置成功。

image.png

至此,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 } 

文章干货不多,记录学习过程,希望可以一起进步呀!!!