昨天有人询问了splat操作符,我想看看源代码......是用C语言还是用Ruby编写的?它会在哪里找到?红宝石,Splat的源代码?
7
A
回答
1
从Ruby 2.4开始,核心Ruby文档中对splat操作符的记录很少。不过,这是该语言的核心功能,并且可以在vm_eval.c
的rb_yield_splat(VALUE values)
下找到splat运算符的源代码。
的unit test为rb_yield_splat
使得它更清晰的所发生的事情:
it "yields with passed array's contents" do
ret = nil
@s.rb_yield_splat([1, 2]) { |x, y| ret = x + y }
ret.should == 3
end
7
一些快速的Google搜索出现了,它在eval.c中实施。你可以在文件的一些地方找到对“splat”的引用,但是我对Ruby的内部工作原理不够熟悉。
相关问题
- 1. 红宝石 - 宝石编辑源代码没有任何影响
- 2. 解析红宝石代码
- 3. 逃逸红宝石代码
- 4. 红宝石错误代码
- 5. 红宝石 - 如何运行Windows cmd上的红宝石代码
- 6. “资源” - 红宝石宝石的目录
- 7. 调试红宝石宝石? Openshift起源
- 8. ChunkyPNG红宝石宝石的替代品
- 9. 转换红宝石+ JavaScript代码的CoffeeScript
- 10. 里面的红宝石代码
- 11. 重构难看的红宝石代码
- 12. 红宝石中“pass”的等效代码
- 13. 如何获取是红宝石宝石的代码?
- 14. 红宝石工具浏览安装的宝石代码
- 15. 重构我的红宝石叽叽喳喳宝石代码
- 16. 红宝石源代码中的范围类?
- 17. 红宝石终端代码不工作
- 18. 使用JavaScript变量红宝石代码
- 19. 解释红宝石代码片段
- 20. 红宝石只是角色代码
- 21. 无法理解红宝石代码
- 22. 红宝石代码替换串
- 23. 红宝石一行代码,中断块
- 24. 了解红宝石代码行
- 25. 优化代码红宝石轨
- 26. 红宝石backtick'd代码退出136?
- 27. 帮助在红宝石代码
- 28. 优化这个红宝石代码
- 29. 如何格式化红宝石代码
- 30. 不明白几行红宝石代码
感谢的是,马丁。试图理解Ruby世界。所以基本上,如果它是ruby而不是rails,则源代码可能不在Ruby中,这很有意义。 – 2009-05-28 18:27:58
splat运算符是核心ruby语言的一部分,不是库函数。它可以用于定义#to_ary方法的任何对象,但是当用于将多个值收集到单个变量中时(如`a,* b = 1,2,3,4,5`),它将始终创建一个阵列。 – rampion 2009-05-28 19:05:57