如何理解这个ruby代码?
我阅读了以下ruby代码:如何理解这个ruby代码?,ruby,Ruby,我阅读了以下ruby代码: def callbacks(procs) procs[:starting].call # line 1 puts "Still going" procs[:finishing].call # line 2 end callbacks(:starting => Proc.new { puts "Starting" }, # line 3 :finishing => Proc.new { puts "Fini
def callbacks(procs)
procs[:starting].call # line 1
puts "Still going"
procs[:finishing].call # line 2
end
callbacks(:starting => Proc.new { puts "Starting" }, # line 3
:finishing => Proc.new { puts "Finishing" }) # line 4
我能猜出它的剂量。但我不知道第1行和第2行的开始和结束是什么意思,第3行的开始和第4行的结束是什么意思。甚至很难找到谷歌的关键词
有人能给我解释一下第1、2、3、4行吗?如果你可以参考一些官方文件,那就更好了
但我不知道:在第1行和第2行开始和结束意味着什么
:start
和:finishing
是哈希过程的哈希键
什么:第3行开始=>和第4行结束=>的意思
通过方法回调
发送散列对象作为参数
读这里
但我不知道:在第1行和第2行开始和结束意味着什么
:start
和:finishing
是哈希过程的哈希键
什么:第3行开始=>和第4行结束=>的意思
通过方法回调
发送散列对象作为参数
请阅读此处。procs
是一个,procs[:starting]
指的是键:starting
的值,该值由以下设置:
:starting => Proc.new { puts "Starting" }
方法调用相当于:
h = {}
h[:starting] = Proc.new { puts "Starting" }
h[:finishing] = Proc.new { puts "Finishing" }
callbacks(h)
procs
是一个,procs[:starting]
是指键:starting
的值,该值由以下设置:
:starting => Proc.new { puts "Starting" }
方法调用相当于:
h = {}
h[:starting] = Proc.new { puts "Starting" }
h[:finishing] = Proc.new { puts "Finishing" }
callbacks(h)
:string
等同于“starting”
?@EvanLi:string
是符号,“starting”
是字符串。为什么使用符号作为散列键而不是字符串?在这种情况下,首选@EvanLi符号,但您可以使用任何对象。但是,它们不一样-如果方法需要符号,则传递字符串将不起作用。@Evali今天还问:string是否相当于“starting”
?@Evali:string
是符号,而“starting”
是字符串。为什么使用符号作为哈希键而不是字符串?在这种情况下,首选@Evali符号,但是你可以使用任何对象。然而,它们是不同的-如果方法需要符号,传递字符串将不起作用。@EvanLi今天也问