GO语言入门指南:基础语法和常用特性解析(二)|青训营

65 阅读3分钟

GO语言入门指南:基础语法和常用特性解析(二)

一、程序结构

以上一章的helloworld程序为例:

image.png

package后是跟的包名,表示该go文件属于哪一个包

main包是程序入口文件。package main表示一个可独立执行的程序,每个GO应用程序都应包含一个名为main的包

import后跟的是导入的包,”fmt“是标准库中的包主要用于输入输出格式化IO字符串

main函数是每一个可执行程序所必须包含的

二、条件语句

GO语言中条件语句与其他语言类似,均有 forifelseswitchcase

1.循环语句 for

用法与其余语言类似,在写条件时有一定差别

例如:

for{

fmt.Println("xnuhuan")

break

}

此处没有条件,只有执行到break语句时才会结束循环

又例如:

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

fmt.Printlf("xunhuan)

}

这里是非常经典的循环语句用法

image.png

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语言中基础语法中最简单基础的部分进行了总结,实际上在这方面,各种语言间差别不大,只需要简单了解其声明格式以及用法即可