为了账号安全,请及时绑定邮箱和手机立即绑定

如何将此示例代码从 Go 转换为 Erlang

如何将此示例代码从 Go 转换为 Erlang

Go
料青山看我应如是 2021-08-23 15:52:20
我以为我可以用一块石头杀死两只鸟,并通过转换以下示例代码(取自http://blog.smartbear.com/programming/an-introduction-to-the-go-language)自学 Go 和 Erlang -boldly-going-where-no-man-has-ever-gone-before/ ) 从 Go 到 Erlang:package mainimport (    "fmt"    "time")type Ball struct{ hits int }func main() {    table := make(chan *Ball)    go player("ping", table)    go player("pong", table)    table <- new(Ball) // game on; toss the ball    time.Sleep(1 * time.Second)    <-table // game over; grab the ball}func player(name string, table chan *Ball) {    for {        ball := <-table        ball.hits++        fmt.Println(name, ball.hits)        time.Sleep(100 * time.Millisecond)        table <- ball    }}然而我失败了。该代码基本上创建了一个共享计数器(球)并在两个 goroutine(玩家)之间来回发送它。到目前为止一切顺利。但是我如何在 Erlang 中做类似的事情呢?我的问题是:如何在 Erlang 中创建计数器?Erlang 似乎不允许在设置后更改变量的值。如何在两个 erlang 进程之间共享这样的计数器?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 190 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信