我是靠谱客的博主 糟糕猫咪,最近开发中收集的这篇文章主要介绍浅析Ruby中的DATA对象,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这段代码能运行吗? 这个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中的DATA对象的全部内容,希望文章能够帮你解决浅析Ruby中的DATA对象所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(115)

评论列表共有 0 条评论

立即
投稿
返回
顶部