Go语言基础|青训营笔记

52 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天。

我有C语言基础,这篇文章主要讲C语言基础向go语言的转变。如有不同意见,可在评论区指出,本人萌新一枚,轻喷。

1、hello world

hello world可谓是程序员最熟悉的代码了,我们通过这个代码了解一下go语言的简单程序。

package main

import (
   "fmt"
)

func main() {
   fmt.Println("hello world")
}
package main

main相当于C语言中的main函数,有且只有一个。

import (
   "fmt"
)

在C语言中,我们需要包含<stdio.h>这个头文件,同样的,go语言里我们需要import(导入) “fmt”这个包。

func main() { 该大括号需要与函数名在同一行
fmt.Println("hello world") }

导入了“fmt”包之后,我们就可以使用包里面的用法了,fmt.Println就是打印()里的内容,打印完后自动换行,就像代码后面加了个'\n'一样,而fmt.printf的用法和C语言一样。
tips1:go语言语句结束不用加分号。

2、变量

go语言对于变量的声明有两种形式:
1、

var a int
var b = "ccy"

这种是对变量进行声明,类似于C语言中的int a,go语言中的类型一般写在后面,且go语言有自动类型识别的功能,详情见第二行。
2、

a := 1
b := "xhz"

第二种是通过赋值来识别类型, 此时a的类型是int,b的类型是string(这是字符串类型)。go语言里的类型比C语言多很多,float32,float64等不同类型需要我们自己去摸索。

tips:命名使用驼峰命名法,且不能用关键字命名。

3、for,if...else,switch

for

go语言中只有for循环,没有C语言中的while和do...while,

for{
...
}
这是一个无限循环

for i:=1;i<10;i++{
...
}
这个是我们熟悉的循环,要注意go语言中不用加括号

if...else

go语言中if...else的用法除了不用加括号,其他用法和C语言基本一样(我还没了解到什么不一样的地方)。

switch

go语言的switch选择结构和C语言有点不同,C语言需要每种情况都加break:

switch(a){
case 1:...;break;
case 2:...;break;
}

而go语言则不需要:

switch(a){
case 1:...
case 2:...
}

而且go语言还可以用判断语句作为条件:

switch(a){
case a>1:...;break;
case a<1:...;break;
}

4、数组

var a [10]int
b := [10]int{1,2,3,4,5,6,7,8,9,0}

数组的两种声明的形式,和变量一样将类型写到后面即可。

5、函数

C语言只能有一个返回值或者无返回值,而go语言可以有多个返回值,一个or无返回值:

func hs(a int ,b int)(c int,d int){
c = a,d = b
return c,d
}
a,b = hs(1,2)
//a = 1,b = 2

转变内容差不多就这些(可能还有我没注意到的),后面slice(切片)、map(键值对),以及len、time等函数,各种包的各种函数、操作等需要我们自己继续深入的学习,博主继续去learn了。