很抱歉,如果这个问题太基础了。 比如说,我在同一个类中有 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:将相同的参数传递给类内的多个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58346770/