ruby - 如何使用 Ruby 的新 lambda 语法?

标签 ruby lambda

Ruby 有 lambda 语法,所以我可以使用 -> 符号:

a = 0
new  -> { a < 5 }  do
   puts a
   a += 1
end

这很好用,但是当我尝试这样做时:

match "/", to:  -> { |e| [404, {}, ["Hello! I am micro rack app"]] }, via: [:get]
match( "/", to:  -> { |e| [404, {}, ["Hello! I am micro rack app"]] }, via: [:get] )
match( "/", { to:  -> { |e| [404, {}, ["Hello! I am micro rack app"]] }, via: [:get] })

所有的返回相同的语法错误:

$ ruby -c -e 'match( "/", to:  -> { |e| [404, {}, ["Hello! I am micro rack app"]] }, via: [:get] )'
-e:1: syntax error, unexpected '|'
match( "/", to:  -> { |e| [404, {}, ["Hello! I am mi...

我错过了什么吗?

最佳答案

我认为新语法应该是

match "/", to:  ->(e) { [404, {}, ["Hello! I am micro rack app"]] }, via: [:get]

关于ruby - 如何使用 Ruby 的新 lambda 语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16632585/

相关文章:

linq - .AsExpandable in Linq to Entity

c++ - 使用rspec测试C/C++程序

ruby-on-rails - 如何在 ActiveAdmin 关联没有更改时触发关联模型的回调

ruby - '& :' usage with ' is_a(整数)'

java - 为什么实例方法的Java Method Reference不能赋值给Consumer接口(interface)

java - 触发事件时自发的 NullPointerExceptions

ruby - 从同一类中的另一个方法访问变量

javascript - 为什么 Settimeout 不拉取更新后的图片 URL?

entity-framework - Entityframework 使用 join 方法和 lambda 进行连接

python - 用于计算素数和的 Lambda 函数