Lean Ruby_Ruby_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > Ruby > Lean Ruby

Lean Ruby

 2012/9/8 11:52:54  standalone  程序员俱乐部  我要评论(0)
  • 摘要:FirstIshouldsayrubymonkisagreatwebsiteforrubylearners.IjusthavesometimethisafternoonsoIdivedmyselfintothislanguageandfounditquiteamazing!Lookatthiscodesnippetbelow.Besidesavariableparameterlist
  • 标签:Ruby
First I should say rubymonk is a great web site for ruby learners.

I just have some time this afternoon so I dived my self into this language and found it quite amazing!

Look at this code snippet below. Besides a variable parameter list, it's also possible to add naming parameters to your method arguments.

def add(*numbers)
	numbers.inject(0) { |sum, number| sum + number }  
end

def subtract(*numbers)
  sum = numbers.shift
  numbers.inject(sum) { |sum, number| sum - number }  
end

def calculate(*arguments)
  # if the last argument is a Hash, extract it 
  # otherwise create an empty Hash
  options = arguments[-1].is_a?(Hash) ? arguments.pop : {}
  options[:add] = true if options.empty?
  return add(*arguments) if options[:add]
  return subtract(*arguments) if options[:subtract]
end


invoking add(4, 5) returns 9 ?
invoking add(-10, 2, 3) returns -5 ?
invoking add(0, 0, 0, 0) returns 0 ?
invoking subtract(4, 5) returns -1 ?
invoking subtract(-10, 2, 3) returns -15 ?
invoking subtract(0, 0, 0, 0, -10) returns 10 ?
defaults to addtion when no option is specified ?
invoking calculate(4, 5, add: true) returns 9 ?
invoking calculate(-10, 2, 3, add: true) returns -5 ?
invoking calculate(0, 0, 0, 0, add: true) returns 0 ?
invoking calculate(4, 5, subtract: true) returns -1 ?
invoking calculate(-10, 2, 3, subtract: true) returns -15 ?
invoking calculate(0, 0, 0, 0, -10, subtract: true) returns 10 ?
发表评论
用户名: 匿名