GO语言入门指南:基础语法和常用特性解析(二)
一、程序结构
以上一章的helloworld程序为例:
package后是跟的包名,表示该go文件属于哪一个包
main包是程序入口文件。package main表示一个可独立执行的程序,每个GO应用程序都应包含一个名为main的包
import后跟的是导入的包,”fmt“是标准库中的包主要用于输入输出格式化IO字符串
main函数是每一个可执行程序所必须包含的
二、条件语句
GO语言中条件语句与其他语言类似,均有 for、ifelse、switchcase
1.循环语句 for
用法与其余语言类似,在写条件时有一定差别
例如:
for{
fmt.Println("xnuhuan")
break
}
此处没有条件,只有执行到break语句时才会结束循环
又例如:
for i:=0;i<5;i++{
fmt.Printlf("xunhuan)
}
这里是非常经典的循环语句用法
2.if-else条件
*用法与其余语言类似,但是在写条件时有一定差别 (即无小括号来写入条件) *
例如:
if a==0{
fmt.Println("if")
}else{
fmt.Println("else") ? }
这是非常经典的if-else用法,是一个与其他语言相通的点
又例如:
if num:=5;num<4{
fmt.Println("if")
}else num<10{
fmt.Println("else")
}
GO语言中可以在条件中定义变量
3.switch-case
用法与其余语言类似,但是GO语言中的switch语句不需要使用 break 语句来结束循环
例如:
switch a{
case 1: fmt.Println("1")
case 2: fmt.Println("2")
default: fmt.Println("over")
}
select语句类似于switch语句,但是select会随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。
三、数组
数组用法与其余语言类似,只是在声明数组时有差别
1.声明格式
GO语言数组声明需要指定元素类型和元素个数,格式如下:
var arrayName [size]interface
其中arrayName为数组名称,size为数组大小,interface表示任意元素类型 当数组长度无法确定时可以利用 ... 来代替数组长度
例如:
var array1 [...]int32
2.初始化
数组可以在声明时直接进行初始化,如下:
var numbers =[...]int32{1,2,3}
也可以声明好后再进行初始化,如下:
var array2 [5]int32
number:=array2[5]int32{1:2,3:4}
此处将数组中索引为1的元素初始化为2,将索引为3的元素初始化为4
四、切片
切片可以看做一个“动态数组”,长度不固定,随时可以加入新的元素
利用copy()函数来复制,append()函数来加入元素
五、函数
基本格式:
func funtionName ([parameter list]) [returnTypes]{
函数体
}
函数内定义的变量为局部变量
函数外定义的变量为全局变量
全局变量名和局部变量名可以相同,在使用时优先考虑局部变量
六、range遍历
可以用于for语句中对数组、切片、Map等进行遍历
格式为:
for key,value:=range interface[]{
newInterface[key]=value
}
若只想读取一个值
for _,value:=range interface[]
七、个人心得
本文仅对GO语言中基础语法中最简单基础的部分进行了总结,实际上在这方面,各种语言间差别不大,只需要简单了解其声明格式以及用法即可