go的函数
函数的主要作用是封装代码,
go可以返回多个值
func hello() (string, string) {
return "123", "123"
}
go 的函数中可以使用变量把函数定义为一个变量,py和js也可以
var getname = func () string{
return "大大怪"
}
go中可以把map的值变成value
闭包(匿名函数)
你可以在函数里面定义一个匿名函数,这个匿名函数可以使用自己作用域外面的变量
go语言的结构
package main // 这是go语言的包,每个文件/程序都需要,说明自己是哪个包的文件,而main是一个单独可以运行的包
使用别人的包需要使用import导入,
变量,函数的大小写控制在包内/包外的可见性,没写只能在本个包中被访问
go语言不需要结束标识符挺好
指针
go中的指针和C语言中的很像
var name string
ptr = &name(获取name的实际物理地址)
使用%x来作为占位符代替打印地址
使用地址存储的变量可以使用*ptr来获取
空指针nil,一个没有被定义的指针就是空值
ptr == nil
ptr != nil
Go结构体,也是C语言学习到的,在结构体中定义多个不同类型的元素
type Books struct{
name string
id string
date string
}
使用":"格式来定义结构体
fmt.Println(Books{title: "Go 语言", author: "www.runoob.com", subject: "Go 语言教程", book_id: 6495407})
使用名称.变量来获取
var book Books
book.name = "哈利波特与魔法石"
结构体也可以有指针
range关键字用来返回索引和索引对应的值
for key, value := range oldMap
如果哪个不需要可以用_表示不需要,因为go必须要使用,不然报错
遍历字符串:
for index, ch := range "string"
map1 := make(mapintfloat)
for key, value := range map1 {
}
通道(Channel)
chan1 = make(chan int, 2)
chan1 <- 1
chan1 <- 2
close(chan1)
for value := range chan1 {
}