首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby,Splat的源代码?

Ruby,Splat的源代码?
EN

Stack Overflow用户
提问于 2009-05-28 15:16:15
回答 2查看 539关注 0票数 8

昨天有人问起了splat操作符,我想看看源代码...那是用C还是用Ruby写的?在哪里可以找到它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-02 09:57:14

从Ruby2.4开始,核心Ruby文档中对splat操作符的记录很少。不过,这是该语言的一个核心特性,splat操作符的源代码可以在rb_yield_splat(VALUE values)下的vm_eval.c中找到。

rb_yield_splatunit test使正在发生的事情变得更加清晰:

代码语言:javascript
复制
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
票数 2
EN

Stack Overflow用户

发布于 2009-05-28 15:30:58

一些快速的谷歌搜索结果表明它是在eval.c中实现的。您可以在文件中的一些地方找到对"splat“的引用,但我对Ruby的内部工作原理还不够熟悉,无法理解它。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/921403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档