Node 里异步编程, 只能靠 callback 或者 promise 来完成, 但是 Golang 看起来有意思多了…
package main
import "fmt"
func foo(){
defer fmt.Println("World")
fmt.Println("Hello")
}
func sum(x,y int,c chan int){
c <- x + y
}
func main(){
foo()
c := make (chan int);
go sum(24,18,c)
fmt.Println(<-c);
}
通过 Channel 的概念, fmt.Println(<-c)
会阻塞代码执行,
而 go sum(24,18,c)
启动的 goroutine 则继续执行,
等到 c <- x + y
往 Channel 里发送了数据,
fmt.Println(<-c)
接收到了数据, 才继续执行代码,
这样就比较方便能用同步的逻辑写异步代码, Node 也方便, 但是不够优雅
…难怪那么多人用惯了后端语言以后不喜欢 Node
感受下 Golang 的中文社区 http://www.golangtc.com/ studygolang.com/ https://groups.google.com/d/forum/golang-china
玩过go,但是还是喜欢node~
golang太精确,不用的不注释掉,好像不能运行.加上还要给变量定义类型,特别是req跟res,要输好长一串.研究了段时间就没有继续了,不过go sum(24,18,c),这个异步确实不错
有意思么,还是喜欢node.
@jiyinyiyong 感情上喜欢node~
golang已经成了我做项目的首选,当然node.js也很是喜欢,做游戏的话node.js是首选
静态编译很多语法错误能够在编译的时候避免了。
一个是静态语言,一个是动态语言,差别太大了……
很难说那个好,例如底层的libuv,它也不是协程的方式,代码也不写起来很舒服?
就让时间去证明吧。
我们不要纠结在起点,喜欢用什么的就用什么,just code it
@jiyinyiyong 那种语言的本质不是一样的?
Go挺好,就是语法太另类了。。
@jiyinyiyong 新语言年年有,选择一个自己最喜欢的,深入够再考虑新欢。
看不懂…go是用了协程吗???
golang有比较好的mvc框架吗
多的很,beego,revel跟express差不多的
@dengqiao大神你好啊,revel是哪国的框架啊,这个没有说明文档教程的吧
ES6里会出来generator的,不用羡慕。