最近发布的主题
暂无
最近发布的文章
暂无
最近分享的资源
暂无
最近发布的项目
暂无
最近的评论
-
评论了主题 为啥以下代码会产生deadlock?```go package main import ( "fmt" ) func main() { AlterPrint() } // POINT: communicate between goroutines by channel func AlterPrint(){ letter, number := make(chan bool), make(chan bool) letterDone := make(chan bool) numberDone := make(chan bool) go func() { i := 1 for { if i > 28 { numberDone <- true return } select{ case <-number: { fmt.Print(i) i++ fmt.Print(i) i++ if i != 29 { letter <- true } break } default: { break } } } }() go func(){ i := 'A' for { if i > 'Z' { letterDone <- true return } select{ case <-letter: { fmt.Print(string(i)) i++ fmt.Print(string(i)) i++ number <- true break } default: { break } } } }() number <- true <- letterDone <- numberDone } ```
-
```go package main import ( "fmt" ) type User struct { Id int Name string } func ChangeSlice(s interface{}) { user1 := User{ Id: 1, Name: "张三", } newSlice := make([]User, 0) newSlice = append(newSlice, user1) *(s.(*[]User)) = newSlice } func main() { users := make([]User, 0) ChangeSlice(&users) // 这里希望让Users指向ChangeSlice函数中的那个新数组 fmt.Println(users) // 希望输出[{1 张三}],但是现在输出[] } ```
-
评论了主题 Go语言学习教程,基础-实战-面试视频学习资料stoneflying@yeah.net 谢谢大佬哟