08 - picking a random line from a file.rb

来自「O Reilly Ruby Cookbook source code」· RB 代码 · 共 29 行

RB
29
字号
module Enumerable  def random_line    selected = nil    each_with_index { |line, lineno| selected = line if rand < 1.0/lineno }        return selected.chomp if selected  endend#Create a file with 1000 linesopen('random_line_test', 'w') do |f|   1000.times { |i| f.puts "Line #{i}" }end#Pick random lines from the file.f = open('random_line_test')f.random_line                                    # => "Line 520"f.random_line                                    # => nilf.rewindf.random_line                                    # => "Line 727"#---File.open('random_line_test') do |f|  l = f.readlines  l[rand(l.size)].chompend# => "Line 708"#---$ ruby -e 'rand < 1.0/$. and line = $_ while gets; puts line.chomp'#---

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?