零基础之go语言1 | 青训营笔记

54 阅读2分钟

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

go语言1:

导包

用法:
    1import "package1/package2"
    2、pktest.Func1()     (包名.函数名)
    
对比java:相似

声明

例子:
    var a int
    var b float32 var c, d float64 
    e, f := 9, 10 
    var g = "Ricardo"
    
    关键字:**var**
    符号::=      (直接赋值,无需定义类型)
    

匿名变量

_

用于填充,某函数func返回3个值,我只打印第2个就可以 _,v,_=func(); fmt.Println(v)

常量

在Golang的常量定义中,使用const关键字,并且不能使用:=

语法

判断

与java一样,只是省略了小括号

循环

只有for循环,也省略了小括号

函数

在Golang的函数定义中,所有的函数都以`func`开头,并且Golang命名推荐使用驼峰命名法。
注意,在Golang的函数中,如果首字母是小写,则只能在包内使用;如果首字母是大写,则可以在包外被引入使用。可以理解为,使用小写的函数,是`private`的,使用大写的函数,是`public`的。
例子:
func add(x int, y int) int {
	return x + y
}

func main() {
	fmt.Println(add(42, 13))
}

defer

defer 语句会将函数推迟到外层函数返回之后执行。 推迟调用的函数其参数会立即求值,但直到外层函数返回前该函数都不会被调用。

数组

与java相比,go的定义是相反的,但比java简洁

var a[5]int

b:=[5]int{1,2,3,4,5}

切片

java却不存在切片这一概念,java对于我更倾向于来用第三方工具库如lombok进行数组扩充等
切片不同于数组,可更改数组的长度,也有更多丰富的操作。

s:=make([]string,3)表示先创建一个长度为3的string类型数组 s[0]=0;s[1]=1;s[2]=2; s=append(s,"a","b") 最后得到的s数组为{0 1 2 a b}

在打印时,可以fmt.Println(s[x:y])来获取s数组的从第x索引开始到y索引之前(不包括y)的数据