走进Go语言基础语法
什么是Go语言
Go语言是一种有着高性能、高并发、语法简单、丰富的标准库、完善的工具链、静态链接、快速编译、跨平台垃圾回收等特性,十分强大高效的编程语言。
开发环境-配置集成开发环境
笔者根据“成就一亿技术人”的CSDN上面一篇文章# golang环境详细安装、配置来在vscode上配置的,因为个人比较喜欢用vscode方便一点。
但是可能有些人环境不好配置,我觉得用GoLand应该也是可以的,学生认证还能免费使用多香。
整体来说感觉比C++配置好配置一点(个人感觉)
基础语法
Hello World
计算机人逃离不开的应该就是Hello World了吧,所有上来都是先来一个Hello World,虽然不懂为什么hhh
package main表示这是程序的main包。import “fmt”导入了"fmt"这个包,主要用来往屏幕输入和输出文本,就有点像C++iostream,不知道能不能这样理解func main()就是程序的入口fmt.Println()用来打印文本。
package main
import(
"fmt"
)
func main(){
fmt.Println("hello world")
}
变量声明
变量声明有两种形式。
第一种使用var关键词定义,如果在声明变量时进行了显式赋值,那么变量的类型可以被省略。如果没有对声明变量赋值,那么必须显式声明变量的类型。
第二种使用:=来进行变量声明。下面代码块中给出了详细例子。
var a = "initial"
var b, c int = 1, 2
var d = true
var e float64
f := float32(e)
g := a + "foo"
const s string = "constant"
const h = 50000000
const i = 3e20 / h
if else
Go中的if else语句与C++中还是比较类似的,不同点在于其if后的条件不需要加括号,在条件后面必须紧跟大括号再换行,对于一个新接触Go的小白来说还需要适应一下,因为笔者喜欢换行再打大括号。
if 7%2 == 0{
fmt.Println("7 is even")
}else{
fmt.Println("7 is odd")
}
循环
Go中的循环就比较单调了,只有一个for循环。for循环后可以不写条件,这样就是一个死循环,内部可用continue或break。注意的是,for循环后条件也没有括号,直接跟条件或大括号。
for{
fmt.println("loop")
break
}
for j := 7; j < 9; j++{
fmt.Println(j)
}
for n:=0; n<5; n++{
if n%2 == 0{
continue
}
fmt.Println(n)
}
switch
Go 语言中的 switch 分支结构也与C++类似,同样的在 switch 后面的变量名不需要加括号。但是,与C++不同的是,Go语言是不需要break来退出的,不像C++中一定要碰到break才退出,不如就会把所有case都跑完,Go中是找到符合条件就退出了
a := 2
switch a {
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
case 3, 4:
fmt.Println("three or four")
default
fmt.Println("other")
}
t := time.Now()
switch {
case t.Hour() < 12:
fmt.Println("It's before noon")
default:
fmt.Println("It's after noon")
}
数组
数组是一种固定大小,存储相同类型元素的集合。对于一个数组,可以很方便的通过索引存取值。这里除了定义数组时有所不同,使用时是基本一样的。
var a [5]int
a[4] = 100
fmt.Println(a[4], len(a))
b := [5] int{1, 2, 3, 4, 5}
其他的内容,包括切片、map、range、函数、指针、结构体、结构体方法、错误处理、字符串还没来得及整理,也可以说是一时间学不明白,分另一篇来讲吧。
总结
对我来说,还是不太习惯Go的表达方式,也许就是还没上手实操吧,都已经一周的时间了,才写了第一篇笔记,拖延症还是太厉害了,明天再搓一篇基础语法就是我上面说的部分吧,也要开始弄一下那个两篇实践了,大项目不做,这个也还是要好好完成的。