Skip to content

Instantly share code, notes, and snippets.

@serradura
Created October 26, 2020 16:53
Show Gist options
  • Save serradura/dbadb71027262614e64728e5606fc8de to your computer and use it in GitHub Desktop.
Save serradura/dbadb71027262614e64728e5606fc8de to your computer and use it in GitHub Desktop.
Ruby - Métodos de instância VS de classe VS lambda
class Calc
def sum(a, b)
a + b
end
def multiply(a, b)
a * b
end
end
calc = Calc.new
puts calc.sum(3, 3) # 6
puts calc.multiply(3, 3) # 9
class Calc
def self.sum(a, b)
a + b
end
def self.multiply(a, b)
a * b
end
end
puts Calc.sum(3, 3) # 6
puts Calc.multiply(3, 3) # 9
module Calc
class Sum
def self.call(a, b)
a + b
end
end
class Multiply
def self.call(a, b)
a * b
end
end
end
puts Calc::Sum.call(3, 3) # 6
puts Calc::Multiply.call(3, 3) # 9
module Calc
Sum = -> (a, b) { a + b }
Multiply = -> (a, b) { a * b }
end
puts Calc::Sum.call(3, 3) # 6
puts Calc::Multiply.call(3, 3) # 9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment