VK
Size: a a a
VK
MG
MG
VK
MG
VK
CM
entity = SomeClass.new doПервая непонятка в синтаксисе.
param :p1
functions do
f_x1 ->(x) { x+1 }
f_x2 ->(x) { x*2 }
end
end
entity.run() # тут в run должно использоваться значение из param и вызываться функции из functions
param :p1
понимаю как вызов метода; по логике это вроде как должен быть вызов метода param класса SomeClass, который сохраняет переданное ему значение для последующего использования. Но похоже, что из блока напрямую вызвать метод класса нельзя, без явного указания параметра '|...|' в блоке и без вызова yuild с (self). Вопрос: что это за конструкция param :p1
и как её использовать?f_x1 = ->(x) { x+1 }
, я бы понял, но в примере написано именно f_x1 ->(x) { x+1 }
. CM
VK
CM
MG
MG
VK
VK
VK
MG
MG
class SomeClass
def initialize
yield(self) if block_given?
end
def param(sel)
@sel = sel
end
def run (str)
puts @sel
puts str
end
end
pc = SomeClass.new do
param :p1
end
pc.run('hello')
MG
VK
VK