掌握了这些知识,在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语言受人喜爱的原因之一。
好了,这期就先说这些,这里是丁哥开讲,欢迎关注防止失联。