TypechoJoeTheme

Dcr163的博客

统计
搜索到 24 篇与 GO相关 的结果
2021-11-28

golang里的互斥锁使用

golang里的互斥锁使用
golang里的互斥锁使用package main import ( "fmt" "sync" ) var wg sync.WaitGroup var lock sync.Mutex var run int = 0 func main() { //未加锁,造成读写混乱 //wg.Add(3) //go addNum() //go addNum() //go addNum() //wg.Wait() //fmt.Println(run) //这里不是我们预期的结果3000,随机的 //加上互斥锁,解决读写混乱;将并发变成了串行,牺牲效率,保证数据安全性。 wg.Add(3) go addRun("a1") go addRun("a2") go addRun("a3") wg.Wait() fmt.Println(run) //4500 } ...
2021-11-28

GO相关

1,031 阅读
0 评论
2021年11月28日
1,031 阅读
0 评论
2021-11-28

golang里的channel通道+select

golang里的channel通道+select
golang里的channel通道//go 里的channel并发 package main import ( "fmt" "sync" ) //channel 单通道,只能添加值 func appendChannel(ch chan<- int) { defer wg.Done() for i := 0; i <10; i++ { ch <- i } close(ch) } //channel 单通道,把另一个通道的值取到另一个通道内 func addChannel(ch chan <- int,chDsc <-chan int) { defer wg.Done() for i := range chDsc { ch <- i+1 } close(ch) } func popChannel(ch <-chan int){ defer wg.Done() fmt.Pr...
2021-11-28

GO相关

936 阅读
0 评论
2021年11月28日
936 阅读
0 评论
2021-11-28

golang里的gorouting开启并发

golang里的gorouting开启并发
golang里的gorouting开启并发//go 里的gorouting并发 package main import ( "fmt" "sync" "time" ) //这个类型可以让程序优雅的结束 var wg sync.WaitGroup func PrintI(i int){ //函数结束后的标识 defer wg.Done() //简单的打印一下 fmt.Println(i,time.Now().UnixNano()) } func main(){ //循环 for i := 0; i < 20; i++ { //标识 wg.Add(1) //开启函数并发 go PrintI(i) } fmt.Println("我是 Main 啊~") //开启下面这个,所有并发运行完毕才结束程序 wg.Wait() }
2021-11-28

GO相关

892 阅读
0 评论
2021年11月28日
892 阅读
0 评论
2021-11-27

golang接口interface学习-Go语言提倡面向接口编程

golang接口interface学习-Go语言提倡面向接口编程
golang接口学习-Go语言提倡面向接口编程interface(接口)是一组method(方法)的集合,接口是一种抽象的类型接口是一个或多个方法签名的集合。任何类型的方法集中只要拥有该接口'对应的全部方法'签名。就表示它 "实现" 了该接口,无须在该类型上显式声明实现了哪个接口。这称为Structural Typing。所谓对应方法,是指有相同名称、参数列表 (不包括参数名) 以及返回值。当然,该类型还可以有其他方法。接口只有方法声明,没有实现,没有数据字段。接口可以匿名嵌入其他接口,或嵌入到结构中。对象赋值给接口时,会发生拷贝,而接口内部存储的是指向这个复制品的指针,既无法修改复制品的状态,也无法获取指针。只有当接口存储的类型和对象都为nil时,接口才等于nil。接口调用不会做receiver的自动转换。接口同样支持匿名字段方法。接口也可实现类似OOP中的多态。空接口可以作为任何类型数据的容器。一个类型可实现多个接口。接口命名习惯以 er 结尾。package main import ( "fmt" "reflect" ...
2021-11-27

GO相关

847 阅读
0 评论
2021年11月27日
847 阅读
0 评论
2021-11-25

golang实现的对象的构造函数

golang实现的对象的构造函数
golang实现的对象的构造函数package main import ( "fmt" ) type Address struct { city string area string } type Person struct { name,job string age uint8 height float32 Address //变量提升 } func main(){ var a1 = newPerson("a1",16,180.5) var a2 = newPerson("a2",26,170.5) a1.job = "PHP" a2.job = "MYSQL" a1.talk("GOlang") //a1 擅长:PHP,现在正在学习:GOlang,奋斗吧~ a2.talk("GOlang") //a2 擅长:MYS...
2021-11-25

GO相关

919 阅读
0 评论
2021年11月25日
919 阅读
0 评论
2021-11-24

golang实现的批量替换文件名相同文字和批量追加文件名前缀

golang实现的批量替换文件名相同文字和批量追加文件名前缀
golang实现的批量替换文件名相同文字和批量追加文件名前缀整段代码编译后go build main.go,使用时,请把需要替换的所有文件放在files目录下,main.exe和files是同级目录//批量替换文件名相同文字和批量追加文件名前缀 package main import ( "fmt" "io/ioutil" "os" "strings" ) //初始化成功和失败的次数 var successNum, errorNum int = 0, 0 func main() { var ( //初始化菜单按钮 menuNum int ) //获取真实路径 dirPath, _ := os.Getwd() //把需要替换的所有文件都放在files这个目录下进行操作 dirPath += "/files/" fmt.Println("***请把需要操作...
2021-11-24

GO相关

950 阅读
0 评论
2021年11月24日
950 阅读
0 评论
2021-11-24

golang的类型和内存地址打印

golang的类型和内存地址打印
golang的类型和内存地址打印 var ( //这个方式切片,默认不分配内存,需要再初始化才能使用 a []int //make初始化切片已经分配内存,可以直接使用 a1 = make([]int,10) //这个方式map,默认不分配内存,不能直接使用 b map[string]string //make初始化map已经分配内存,可以直接使用 b1 = make(map[string]string) //字符串类初始化就已经生成内存可以直接使用 c string ) fmt.Printf("a的值:%v,类型:%v,内存地址:%p\n",a,reflect.TypeOf(a),a) //a的值:[],类型:[]int,内存地址:0x0 fmt.Printf("a1的值:%v,类型:%v,内存地址:%p\n",a1,reflec...
2021-11-24

GO相关

993 阅读
0 评论
2021年11月24日
993 阅读
0 评论
2021-11-23

golang使用bufio读取文件-按指定分隔符合读取

golang使用bufio读取文件-按指定分隔符合读取
golang使用bufio读取文件//使用 bufio 读取文件 package main import ( "bufio" "fmt" "io" "os" ) func main() { //先打开文件 file, err := os.Open("1.txt") if err != nil { fmt.Println("文件打开失败了,错误:", err) return } //操作完毕之后,关闭文件。这里加defer是代表,当main函数,运行完毕的前一刻调用这个 file.Close() 防止忘记关闭资源 defer file.Close() //NewReader创建一个具有默认大小缓冲 reader := bufio.NewReader(file) //初始化存放的内容变量 var fileInfo str...
2021-11-23

GO相关

848 阅读
0 评论
2021年11月23日
848 阅读
0 评论

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

最新回复

  1. William Tardent
    2024-02-27
  2. Maryann Hamer
    2024-02-27
  3. Sanora Pantano
    2024-02-24
  4. aa
    2024-02-21
  5. Kassie Baum
    2024-01-28

标签云