10 - metaprogramming with string evaluations.rb
来自「O Reilly Ruby Cookbook source code」· RB 代码 · 共 56 行
RB
56 行
class Numeric [['add', '+'], ['subtract', '-'], ['multiply', '*',], ['divide', '/']].each do |method, operator| define_method("#{method}_2") do method(operator).call(2) end endend#---class Numeric [['add', '+'], ['subtract', '-'], ['multiply', '*',], ['divide', '/']].each do |method, operator| module_eval %{ def #{method}_2 self #{operator} 2 end } endend4.add_2 # => 610.divide_2 # => 5#---class String def last(n) self[-n, n] endend"Here's a string.".last(7) # => "string."class String define_method('last') do |n| self[-n, n] endend"Here's a string.".last(7) # => "string."class String module_eval %{def last(n) self[-n, n] end}end"Here's a string.".last(7) # => "string."String.module_eval %{def last(n) self[-n, n] end}"Here's a string.".last(7) # => "string."#---class String eval %{def last(n) self[-n, n] end}end"Here's a string.".last(7) # => "string."#---
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?