浅析Ruby中的DATA对象_ruby专题教程-查字典教程网
浅析Ruby中的DATA对象
浅析Ruby中的DATA对象
发布时间:2016-12-28 来源:查字典编辑
摘要:这段代码能运行吗?这个DATA是什么东西?require'erb'data=DATA.readmax=15_000title="hellow...

这段代码能运行吗? 这个DATA是什么东西?

require 'erb' data = DATA.read max = 15_000 title = "hello world!" content = "hello world!n" * 10 max.times{ ERB.new(data).result(binding) } __END__ <html> <head> <%= title %> </head> <body> <h1> <%= title %> </h1> <p> <%= content %> </p> </body> </html>

这个神奇的DATA是一个IO对象,读取__END__之后内容。 有一点需要注意的是DATA.read会将__END__之后的内容一次性读出,由于IO读取的特性,当第 二次DATA.read的时候内容就会为空,如果需要第二次读取,那么先要执行DATA.rewind。

有的时候我们写一个脚本来做一些自动化的工作,需要预先读取一个文件的内容,作为输入或者作为模版,我们可以先把这部分内容附到__END__后,然后用DATA来读取,因为它是标准的IO对象,我们可以像处理普通文件一样处理__END__后的内容,如上面的代码所示,用来存储ERB内容作为模版,然后再进行处理,非常的方便。

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新ruby专题学习
    热门ruby专题学习
    脚本专栏子分类