简单读取

puts "首个参数:#{ARGV[0]}"
puts "首个参数:#{ARGV[1]}"
puts "首个参数:#{ARGV[2]}"
puts "首个参数:#{ARGV[3]}"
puts "首个参数:#{ARGV[4]}"
name = ARGV[0]
print "Happy Birthday, ", name, "\n"
num0 = ARGV[0].to_i
num1 = ARGV[1].to_i

puts "#{num0} + #{num1} = #{num0 + num1}"
puts "#{num0} - #{num1} = #{num0 - num1}"
puts "#{num0} * #{num1} = #{num0 * num1}"
puts "#{num0} / #{num1} = #{num0 / num1}"

文件读取

整个文件内容读取

filename = ARGV[0]
file = File.open(filename)
text = file.read
print text
file.close

或者用 File.read(filename),或者一步到位

print File.read(ARGV[0])

逐行读取

filename = ARGV[0]
file = File.open(filename)
file.each_line do |line|
  print line
end
file.close

方法定义

def hello
  puts "Hello, Ruby."
end

hello()

其它文件引用

require 方法用于引用已存在的库,只需要指定库名,程序就会在预先定义好的路径下查找并读取与 Ruby 一起安装的库。

而 require_relative 在查找时,是根据执行中的程序目录来进行的,这有利于程序读取写在不同文件的代码。

def simple_grep(pattern, filename)
  file = File.open(filename)
  file.each_line do |line|
    if pattern =~ line
      print line
    end
  end
  file.close
end
require_relative "grep"

pattern = Regexp.new(ARGV[0])
filename = ARGV[1]
simple_grep(pattern, filename)

拓展

pp 方法

require "pp"

books = [
  { title: " 猫街 ", author: " 萩原朔太郎 " },
  { title: " 猫的事务所 ", author: " 宫泽贤治 " },
  { title: " 猫语教科书 ", author: "Paul Gallico" },
]

p books
puts "=========================="
pp books

与 p 方法有点不同, pp 方法在输出对象的结果时,为了更容易看懂,会适当地换行以调整输出结果。建议像散列那样,在需要确认嵌套的内容时使用 pp 方法。