掌握了这些知识,在Go语言的编程世界里,基本上可以畅行无阻了

大家好,这一期我们来谈一下Go语言, Go语言现在软件开发中的地位越来越高了,尤其是在后端开发中因为其加载的高效性吸引了众多的开发者。

说到Go的高效,主要是因为它最终生成的运行文件是机器码文件, 就像C和C++编译以后生成的文件一样的格式。

现在比较流行的Java,C#,这类语言生成的是中间语言代码文件,电脑还不能立即运行,需要加载以后转化成机器码才可以运行。

像我们熟悉的Python,PHP这类语言代码是解释性的语言代码,需要解释器边解释边编译边运行。

这样相比下来,加载速度和运行速度最高的当然就是直接加载运行机器码了。

有一种说法,就是说GO程序运行完结果以后, 有些解释类语言程序,比如说PHP或者Python还没有加载完成呢。

那么,程序加载完成以后呢,说实在的, 效率方面就没有太大差别了。

接下来我们就谈一下Go语言的安装和编译运行。

用Go语言当然要先安装,这个直接去goalong.org的网站上就可以了, 这个取决于你用什么样的系统下载什么安装包。

当然了,你也可以直接在你的系统里面用命令行安装, 比如说你在MAC上可以直接用brew install go,或者ubuntu上用apt-get insyall go。

安装完Go以后, Go的相关的命令也就都可以用起来了。

最值得一提的是,Go工程跟其他语言的工程概念不太一样。

Go的所有的工程都在一个地方, 称之为工作空间。

这个命令行:go env GOPATH, 可以告诉你当前的工作空间在哪里。

在这个工作空间里面,你要建一个src目录作为你的代码文件目录。

如果你有多个工程的话,他们的源代码都会在这个src的目录下。

比如说你有一个工程,你就起一个名hello,然后在这个工程目录里面你创建一个go文件。

这个文件要作为文件入口的话,你需要在这个文件开始声明一个package 名 main,然后需要创建一个main入口函数。

运行这个文件的话,你可以用 go run hello.go, 这个命令行会直接运行你的go文件, 并返回结果。

也可以用go build, 这个命令会生成一个二进制文件,这个文件是可以直接运行的。

你也可以用go install这个命令,会生成一个二进制文件,位置在跟src同级的bin文件夹里面。

接下来我们来说一些Go语言的语法细节。

定义一个变量可以这样:

var x int

var s string

定义变量,不赋值的话缺省为零(数字)或空(字符串)。

定义并赋值的话可以这样:

var x int = 1

var s string = “test”

也可以使用简化形式:

x:= 1

s:= “test”

接下来说一下条件判断。

if x> 5 {

} else if x < 2 {

} else {

}

条件判断不需要括号。

接下来说一下数组。

定义一个数组可以这样:

var a [5] int

对于数字数组来说不赋值的话,缺省为0。

单个元素赋值可以这样做:

a[3] = 56

代表是把第4个元素设为56。

简化的定义数组并赋值的模式如下:

a:=[5]int{5,4,3,2,1}

上面这种数组称为静态数组,长度不可改变。

可以用slice来创建动态数组。

就是这样a:=[]int{5,4,3,2,1}。

动态数组可以往里面添加元素。

a:=append(a,13)

接下来说一下map。

testmap := make(map[string]int)

string是键的类型,int是值的类型。

赋值方式是这样子的:

testmap[“key1”] = 2

testmap[“key2”] = 3

删除某个值的话可以这样做。

delete(testmap, “key1”)

接下来说一下循环。

Go语言只有一种循环for。

可以这样:

for i:=0; i < 10; i ++ {

}

也可以这样:

for i < 10 {

}

这个相当于while循环。

也可以这样来遍历一个数组:

for index, value := range arr {

}

也可以这样来遍历一个map:

for key, value := range testmap {

}

创建一个新函数这样做:

func sum(x int, y int) int{

return x+y

}

调用方式如下:

result:=sum(2,3)

上面这个函数表示输入两个整数,返回这个两个整数之和。

一个函数可以返回两个值:

func testFun(x int) (int, error){

if x < 0 {

return 0, errors.New(“Cannot use negative input”)

}

return x * 10, nil

}

调用方式如下:

result,err:=testFun(10)

if err !- nil {

} else {

}

接下来说一下结构定义。

type person struct {

firstName string

lastName string

}

这样用:

p:=person{firstName:”Jack”, lastName: “Wang”}

p.firstName

p.lastName

接下来看一看内存地址, 引用和指针。

i:=78

fmt.Println(&i)

通过引用这样可以打印出i变量的内存地址来。

下面是引用的一个用法。

func test(x *int)

{

*x++

}

test(&i)

调用这个函数以后,i的值会被加1。

现在做一下 小结,上面我们介绍了GO语言的安装,编译,运行,变量,函数,条件判断,数组,动态数组,map, 循环, 错误检查和返回, 指针等。

可以说掌握了基本知识,在Go语言的编程世界里,基本上可以畅行无阻了。这也是GO语言受人喜爱的原因之一。

好了,这期就先说这些,这里是丁哥开讲,欢迎关注防止失联。