Golang Go语言中请问这个 if else 哪里不对了
Golang Go语言中请问这个 if else 哪里不对了
刚刚入门,写了个通道不断收发的实例,不过说语法不对。
package main
import "fmt"
import "time"
func sender(ch chan int){
for i:=0;i<100;i++{
ch<-i
time.Sleep(time.MillSecond)
//ch<-i+1
}
}
func main() {
ch:=make(chan int)
go sender(ch)
for {
data,ok:=<-ch
if ok!=nil {
fmt.Println("data=",data)
if data==50 {
break
}
}
else {
fmt.Println("No data")
}
}
fmt.Println("Done")
}
把这个注释了就能正常运行: else { fmt.Println("No data") }
更多关于Golang Go语言中请问这个 if else 哪里不对了的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
这里不对。不能这样写。
更多关于Golang Go语言中请问这个 if else 哪里不对了的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
大佬请指教
好嘛,抖个机灵的功夫帖子编辑了,这回得硬着头皮来解答了…
你等我半小时,我去现学 golang 装好环境再来装逼…
docker 呀
channel 返回的第二个参数是 bool 类型,不能和 nil 比较;
把 if ok!=nil 改成 if !ok 就可以运行了;
(代码逻辑没看,只看了语法错误)
两个写法都可以,我最开始也是用的!ok,也报 else 的错,用!=nil 也还是包 else 那里的错
![image.png]( https://i.loli.net/2021/03/07/joyYVbAOM8eI3cW.png)
1 、毫秒拼错了
2 、else 网上挪放在 if 右括号右边
else 要跟 if 右括号 在一行
用 IDE 来给代码 format 啊喂!
谢谢大佬,就是那个 else 的括号问题。
初学没用 ide,用 vim 撸的
谢谢大神
另外这个程序会死锁,哪位大神讲讲啊,我不是搞 go 的
把 if ok!=nil 改为 if ok ,data==99 就不会死锁
啊啊啊啊啊 没注意看写反了 十分感谢您的代码
vs code 大法啊,vim 插件,golang 插件,妥妥的。
说实话,golang 对于 IDE 的需求不是那么大(不如 Java,Java 手动控制目录、导入等等要晕死;甚至不如 Python,Python 几乎所有错误都在运行时,并且错误提示根本没有任何启发性)
实际使用中优雅不见得,no distraction 倒是真的。
不会死锁,是死循环了吧。
哦我没发现 sender 是有限循环(