📄 10 - metaprogramming with string evaluations.rb
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -