首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ERB#result与ERB#run的区别

ERB#result与ERB#run的区别
EN

Stack Overflow用户
提问于 2013-11-15 04:43:41
回答 2查看 68关注 0票数 2

这是erb3.rb

代码语言:javascript
复制
require 'erb'

weekday = Time.now.strftime('%A')
simple_template = "Today is <%= weekday %>."

renderer = ERB.new(simple_template)
puts renderer.result
renderer.run

当我运行这个的时候,我得到了下面的信息。

代码语言:javascript
复制
➜ ruby erb3.rb
Today is Friday.
Today is Friday.%

Q1。我知道我不需要写puts renderer.run。但还有什么不同吗?

Q2。put renderer.run的输出为Today is Friday.%。最后的%是什么。当我使用puts renderer.run时,它不会输出%。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-15 04:53:55

关于Q1,编写puts renderer.resultrenderer.run没有区别。更新:谢谢你@muistooshort指出run的来源

代码语言:javascript
复制
def run(b=new_toplevel)
  print self.result(b)
end

如您所见,它只是打印result的输出。

关于Q2,我认为%表示一个新行。如果您将脚本更改为以下内容,它就会消失。

代码语言:javascript
复制
renderer = ERB.new(simple_template)
puts renderer.result
renderer.run
puts ""
#>Today is Thursday.
#>Today is Thursday.
票数 2
EN

Stack Overflow用户

发布于 2013-11-15 04:52:51

renderer.run打印结果,这意味着在输出之后没有新的换行符,这是由%指示的(我猜是因为您使用的是zsh)。您可以得到如下相同的结果:

代码语言:javascript
复制
➜ puts 'a'; print 'a'
a
a%
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19993695

复制
相关文章

相似问题

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