Ruby替代void返回类型

时间:2013-03-09 09:33:41

标签: ruby void return-type

我的经验是基于C语言(C,C ++,Java,C#),其中函数的返回类型可以是无效的,即无法返回。但在Ruby中,似乎每个函数都返回一些东西。我想知道在Ruby中返回什么方法不会返回Java或C ++中的任何内容。我最好的猜测是nil或包含方法的对象(用于链接)或者只是忽略最后发生的事情,但我似乎无法找到任何相关的信息。

Ruby中的void可以替代什么?

3 个答案:

答案 0 :(得分:9)

return nil

在方法的最后一个陈述中。

或者只是

nil

答案 1 :(得分:0)

如果您不想返回任何内容,是的,您可以使用return nil。但为什么呢?

通过不为变量分配函数调用,您可以幸福地忘记返回的内容。返回的值将不存储在垃圾收集中,并且将丢失。

答案 2 :(得分:0)

nil与void不同。您可以将变量设置为nil,但不能将其设置为void。如果一个函数返回nil,它可以被赋值给一个没有错误的变量,但是尝试使用void函数(在java或某些支持void函数的语言中),编译器就会咆哮。我不是一个红宝石超级专家,但我没有发现任何迹象表明支持void的概念。所有函数都返回一些东西,即使它是零。如果这是不正确的,那么我希望有更多红宝石知识的人可以提供一个反例。

变量,特别是在所有东西都是对象的ruby中,是一个带有名称和存储地址的地方,指向堆上某处的对象。将变量设置为nil意味着将其指针设置为NilClass的唯一实例。 (true和false相似;有TrueClass和FalseClass的单​​个实例。)

我意识到C有一个叫做void指针的东西。这是对“void”这个词的完全不同的用法。 void指针确实包含一个地址并指向某个东西。我们暂时忽略这些;我只是提到它们以阻止无用的反驳。我们专注于ruby中的函数,它实际上返回 nothing ,这在我所知的范围内并不存在。