Ruby第三天作业
来源:互联网 发布:java 接口开发demo 编辑:程序博客网 时间:2024/06/11 08:07
参考网上例子:
class CsvRow attr_accessor :row, :headers def initialize(row, headers) @headers = {} (0...headers.count).each {|i| @headers[headers[i]] = i} # 保存列数组 @row = row end def method_missing(name, *args) @row[@headers[name.to_s]]<span style="white-space:pre"></span># 直接调用列名方法<pre name="code" class="ruby">initializeendendmodule ActsAsCsv def self.included(base) puts base base.extend ClassMethods end def each @csv_contents.each {|row| yield row}# 覆盖each,调用传入函数,执行打印method_missing end module ClassMethods def acts_as_csv include InstanceMethods # 包含实例方法 end end module InstanceMethods def read @csv_contents = [] file = File.new(self.class.to_s.downcase + '.txt') @headers = file.gets.chomp.split(',') file.each do |row| @csv_contents << CsvRow.new(row.chomp.split(","), @headers)# 放入数组 end end attr_accessor :headers, :csv_contents def initialize read# .new初始化调用read
end endendclass RubyCsv include ActsAsCsv acts_as_csvendcsv = RubyCsv.newcsv.each {|row| puts row.one}
0 0
- Ruby第三天作业
- Prolog第三天作业
- Scala第三天作业
- ruby 第一天作业
- Ruby第一天作业
- 训练营第三天作业
- Python第三天课后作业
- C/C++/C#/Java程序员的Ruby第三天
- Java Language:-第三天-2-Java作业-12/10/2014
- c++ 学习之路 第三天 作业理解
- 第三天
- 第三天
- 第三天
- 第三天
- 第三天
- 第三天
- 第三天
- 第三天
- 提供语义分析和分词服务
- IOS-笔记16(Animation)
- 迭代模式
- 开发常用工具
- 为什么要使用SLF4J而不是Log4J
- Ruby第三天作业
- linux常用命令(3):pwd命令
- C++ Jsoncpp源代码编译与解析Json
- 字符串组合问题(无重复)
- 【Memphis】非旋转Treap及可持久化[Merge,Split]
- Download pdf file from JAX-RS
- 4 quick fixes available
- demo2 JAVA变量
- 手持移动端特殊链接:打电话,发短信,发邮件