Jam*_*sen 21 ruby lambda serialization proc-object
Joe Van Dyk 询问了Ruby邮件列表:
嗨,
在Ruby中,我猜你不能编组一个lambda/proc对象,对吗?在lisp或其他语言中这可能吗?
我想做什么:
l = lamda { ... }
Bj.submit "/path/to/ruby/program", :stdin => Marshal.dump(l)
Run Code Online (Sandbox Code Playgroud)
所以,我正在向BackgroundJob发送一个lambda对象,该对象包含要执行的操作的上下文/代码.但是,猜测这是不可能的.我最终编组了一个普通的ruby对象,其中包含程序运行后要执行的操作的说明.
乔
dom*_*nic 11
你也可以输入你的代码作为字符串:
code = %{
lambda {"hello ruby code".split(" ").each{|e| puts e + "!"}}
}
Run Code Online (Sandbox Code Playgroud)
然后用eval执行它
eval code
Run Code Online (Sandbox Code Playgroud)
这将返回红宝石lamda.
使用%{}
格式转义字符串,但仅在不匹配的括号上关闭.即你可以像这样嵌套大括号%{ [] {} }
,它仍然是封闭的.
大多数文本语法荧光笔没有意识到这是一个字符串,所以仍然显示常规代码突出显示.
归档时间: |
|
查看次数: |
7313 次 |
最近记录: |