当前位置: 首页 > 编程笔记 >

浅析Ruby中的DATA对象

上官恩
2023-03-14
本文向大家介绍浅析Ruby中的DATA对象,包括了浅析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中的类对象的概念,包括了浅析Ruby中的类对象的概念的使用技巧和注意事项,需要的朋友参考一下  面向对象的程序涉及类和对象。 一个类是蓝本,从个别对象被创建。在面向对象的术语,我们说小明的自行车是被称为自行车类的对象实例。 任何车辆的例子。它包括轮子,马力,燃油或燃气罐容量。这些特点形成的类车辆的数据成员。可以从其他车辆区分这些特征。 车辆也有一定的功能,如停止,驾驶,超

  • 本文向大家介绍浅析jQuery 3.0中的Data,包括了浅析jQuery 3.0中的Data的使用技巧和注意事项,需要的朋友参考一下 jQuery 3.0 在6月9日正式发布了,3.0 也被称为下一代的 jQuery。这个版本从14年10月开始,其中发布过一次beta 版(2016/1/14,)和候选版(2016/05/20)。一路走来,颇为不易。 一、Data浅析 jQuery 3.0 中的

  • 本文向大家介绍浅析JavaScript中的对象类型Object,包括了浅析JavaScript中的对象类型Object的使用技巧和注意事项,需要的朋友参考一下 ECMAScript中的对象其实就是一组数据和功能的集合。 ECMAScript中Object是所有对象的基础。 理解:Object类型是所有它的实例的基础,换句话说,Object类型所具有的任何属性和方法也同样存在于更具体的对象中。 Ob

  • 本文向大家介绍Java中的对象和对象引用实例浅析,包括了Java中的对象和对象引用实例浅析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java中的对象和对象引用。分享给大家供大家参考。具体分析如下: 在Java中,有一组名词经常一起出现,它们就是“对象和对象引用”,很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然。今天我们就来一起了解一下对象和对象引

  • 本文向大家介绍浅析Java编程中类和对象的定义,包括了浅析Java编程中类和对象的定义的使用技巧和注意事项,需要的朋友参考一下 1,什么是类? 答:类是客观存在的,抽象的,概念的东西。 2,什么事对象? 答:对象是具体的,实际的,代表一个事物。例如:车是一个类,汽车,自行车就是他的对象。 关于类与对象的描述:类是对象的模版,对象是类的一个个体。 3,Java中定义类的方法? 4,对象的定义方法?

  • 本文向大家介绍Python中的yield浅析,包括了Python中的yield浅析的使用技巧和注意事项,需要的朋友参考一下 在介绍yield前有必要先说明下Python中的迭代器(iterator)和生成器(constructor)。 一、迭代器(iterator) 在Python中,for循环可以用于Python中的任何类型,包括列表、元祖等等,实际上,for循环可用于任何“可迭代对象”,这其实