首页 > 编程知识 正文

在ruby中如何设置带进程号的文件名,ruby.

时间:2023-05-03 07:09:26 阅读:229202 作者:1102

在ruby中&实际上是一个关键字,当ruby 看见这个“&” 符号的时候他会他 “&” 符号后面的内容调用了"to_proc"方法转化为一个代码块。

比如:

a=[1,2,3,4,5,6]

irb> #=>  [1, 2, 3, 4, 5, 6]

a.map(&:to_s)

["1", "2", "3", "4", "5", "6"]

irb> #=> :to_s.to_proc

irb> #=> => #<Proc:0x005577886e4650(&:to_s)>  #可以看到返回的确实是一个代码块。

& 后面 规定可以放 对象(:symbol也是对象),其他的数字或者字符串是不可以的。


贴个代码自己体会

## case 1class Symbol def to_proc proc { |x| x.send(self) } endendp [1, 2, 3].map &:to_sp [1, 2, 3].map &proc { |x| x*x }puts "*" * 50## case 2class ProcStore def initialize handler @handler = handler end def to_proc proc { |ele| send(@handler, ele) } end def hi ele "hi #{ele}" end def hello ele "hello #{ele}" endendp [1, 2, 3].map &ProcStore.new(:hi)p [1, 2, 3].map &ProcStore.new(:hello)puts "*" * 50## case 3def test x "test #{x}"endp [1, 2, 3].map &method(:test)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。