浅析Ruby中的DATA对象
技术  /  管理员 发布于 6年前   542
这段代码能运行吗? 这个DATA是什么东西?
require 'erb'data = DATA.readmax = 15_000title = "hello world!"content = "hello world!\n" * 10max.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内容作为模版,然后再进行处理,非常的方便。
test1 在
opencode + Oh-my-openagent,我的第一个免费的ai编程智能体管家:Sisyphus中评论 test..122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..Zita 在
Google AI Studio升级全栈 vibe coding体验,可直接构建带登录和数据库的应用中评论 111222..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号
