yangyang12138

导航

go

一、go类型
1.布尔型
布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。
2.数字类型
整型 int 和浮点型 float32、float64,Go 语言支持整型和浮点型数字,并且支持复数,其中位的运算采用补码。
3.字符串类型:
字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。
4.派生类型:
包括:
(a) 指针类型(Pointer)
(b) 数组类型
(c) 结构化类型(struct)
(d) Channel 类型
(e) 函数类型
(f) 切片类型
(g) 接口类型(interface)
(h) Map 类型
二、变量和常量
var s string = "test"
m := "test2"
const LENGTH int = 10 #常量
三、函数
func swap(x, y string) (string, string) {
return y, x
}

func main() {
a, b := swap("1111", "22222")
fmt.Println(a, b)
}
四、数组
var balance [10] float32
长度为10的数组
var balance = [...]int{1, 2, 3}
根据元素个数确定长度的数组
不定长数组 make([]int,3,5)
初始长度为3最大长度为5的数组
range
var pow = []int{1, 2, 4, 8, 16, 32, 64, 128}

for i, v := range pow {
fmt.Printf("2**%d = %d\n", i, v)
}
五、结构体
type P struct {
name string
age int
}
fmt.Println(P{"G", 1})
fmt.Println(P{name: "G", age: 1})
var p P
p.name = 'G'
print(p.name)

接口

type Phone interface {
call()
}

type Phone1 struct {
}

func (p Phone1) call() {
fmt.Println("aaaaa")
}

type Phone2 struct {
}

func (p2 Phone2) call() {
fmt.Println("bbbbbbb")
}

func main() {
var phone Phone

phone = new(Phone1)
phone.call()

phone = new(Phone2)
phone.call()

}

 


六、并发
go f(x, y, z)
通道
ch := make(chan int)

发送
ch <- sum
接收
sum <- ch

v, ok := <-ch
ok表示通道是否关闭

m sync.Mutex 互斥锁

import (
"fmt"
"sync"
)

var wg sync.WaitGroup

func hello() {
fmt.Println("aaa")
defer wg.Done()
}

func main() {
wg.Add(1)
go hello()
fmt.Println("欢迎来到编程狮")
wg.Wait()//阻塞代码的运行,直到计算器为0
}

 

posted on 2023-04-06 02:11  杨杨09265  阅读(21)  评论(0编辑  收藏  举报