新的可以返回零吗?

时间:2015-09-11 19:27:54

标签: ruby

我正在使用ruby编写的新代码库。我之前从未开发过红宝石,所以我有一个非常普遍的问题。代码有一个我觉得很奇怪的模式。当它创建一个类的新实例时,它会立即检查以确保它不是零。

@client = Client.new()
raise("Client not initialized.") if (@client == nil)

一般来说新回报可以吗?这是一种常见的红宝石模式吗?

1 个答案:

答案 0 :(得分:5)

可以吗?是的。

可以使用可能返回Class#new的内容覆盖Class#allocate(调用initialize然后调用nil)的默认实现。然而,

会吗?可能不会。

new的默认实现将返回nil,并且覆盖new非常罕见,可能不是很好的形式(尽管它不是通常不好的做法,通常有更好的方法。)