这是我参与「第五届青训营 」伴学笔记创作活动的第 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了。