对不起,如果这是太基本的要求。
我在同一个类中有5个方法。
当我调用每个方法时,我需要传递相同的参数。
有没有办法简化这个过程,避免重复?
class Class1
def method1(arg1, arg2, arg3)
puts arg1, arg2, arg3
end
def method2(arg1, arg2, arg3)
puts arg1, arg2, arg3
end
def method3(arg1, arg2, arg3)
puts arg1, arg2, arg3
end
def method4(arg1, arg2, arg3)
puts arg1, arg2, arg3
end
def method5(arg1, arg2, arg3)
puts arg1, arg2, arg3
end
end
obj1 = Class1.new
obj1.method1(1, 2, 3)
obj1.method2(4, 5, 6)
obj1.method3(7, 8, 9)
obj1.method4(10, 11, 12)
obj1.method5(13, 14, 15)
提前谢谢!
最佳答案
使用构造函数可能会有帮助:
class MyClass
def initialize(arg1, arg2, arg3)
@arg1, @arg2, @arg3 = arg1, arg2, arg3
end
def method_one
puts @arg1, @arg2, @arg3
end
def method_two
puts @arg1, @arg2, @arg3
end
end
my_obj = MyClass.new(1,7,13)
my_obj.method_one #=> 1 7 13
my_obj.method_two #=> 1 7 13
您也可以使用
Struct
更简洁:MyClass = Struct.new(:arg1, :arg2, :arg3) do
def method_one
puts arg1, arg2, arg3
end
def method_two
puts arg1, arg2, arg3
end
end
my_obj = MyClass.new(1,7,13)
my_obj.method_one #=> 1 7 13
my_obj.method_two #=> 1 7 13
puts my_obj.arg2 #=> 7
关于ruby - Ruby:将相同的参数传递给类中的多个方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58346770/