使用ruby中我们自己的自定义方法在ruby中创建对象
我需要用我自己的自定义方法在ruby中创建一个对象,而不是默认的new() 如果需要使用generate()为用户创建对象,请说明如何实现。 所以当我打字的时候使用ruby中我们自己的自定义方法在ruby中创建对象,ruby,metaprogramming,Ruby,Metaprogramming,我需要用我自己的自定义方法在ruby中创建一个对象,而不是默认的new() 如果需要使用generate()为用户创建对象,请说明如何实现。 所以当我打字的时候 obj = User.generate 它应该创建一个用户的对象 我理解的一种方法是使用alias关键字对方法进行别名 虽然我不确定 有什么建议吗?在用户类中创建一个名为生成的类方法在用户类中创建一个名为生成的类方法您可以调用特定的方法并在其中调用self.new class User def self.generate
obj = User.generate
它应该创建一个用户的对象
我理解的一种方法是使用alias关键字对方法进行别名
虽然我不确定
有什么建议吗?在
用户
类中创建一个名为生成
的类方法在用户
类中创建一个名为生成
的类方法您可以调用特定的方法并在其中调用self.new
class User
def self.generate
new
end
end
class User
def self.generate
self.new
end
end
obj = User.generate
您可以调用特定的方法,并在其中调用self.new
class User
def self.generate
self.new
end
end
obj = User.generate
正如您所说,您只需
alias\u方法
it即可:
class << User
alias_method :generate, :new
end
或者,您可以重新实现Class#new
的功能:
class User
def self.generate(*args, &blk)
obj = allocate
obj.send(:initialize, *args, &blk)
obj
end
end
正如您所说,您只需
alias\u方法
it即可:
class << User
alias_method :generate, :new
end
或者,您可以重新实现Class#new
的功能:
class User
def self.generate(*args, &blk)
obj = allocate
obj.send(:initialize, *args, &blk)
obj
end
end
这样做:
类用户;def自生成;放上“现在怎么样,棕色奶牛?”;结束;结束
?是的,正如其他人在下面发布的一样。但是请不要把它写在一张纸上line@CarySwoveland不确定,但我希望第一条评论是对答案的讽刺,除非我在文档中遗漏了它,我认为《新代码》从未发布过《现在怎么样,布朗牛?:)@PiotrKruczek这不是真正的答案,因为OP想知道如何创建一个generate
方法,该方法的行为类似于new
,而您的答案并未涵盖该方法;def自生成;放上“现在怎么样,棕色奶牛?”;结束;结束?是的,正如其他人在下面发布的一样。但是请不要把它写在一张纸上line@CarySwoveland不确定,但我希望第一条评论是对答案的讽刺,除非我在文档中遗漏了它,我认为《新代码》从未发布过《现在怎么样,布朗牛?:)@PiotrKruczek这不是真正的答案,因为OP想知道如何创建一个类似于new
的generate
方法,而你的答案没有涵盖。你为什么需要这个?我假设new
不能满足您的需求是有特定原因的,否则只需使用new
。您为什么需要这个?我假设new
不能满足您的需求是有特定原因的,否则只需使用new
。