Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby替代void返回类型 我的经验是在C语言(C,C++,爪哇,C)中,函数的返回类型可以无效,即不返回。但是在Ruby中,似乎每个函数都返回一些东西。我想知道在Ruby中返回什么,它将不会返回java或C++中的任何东西。我最好的猜测可能是nil或包含方法(用于链接)的对象,或者忽略最后发生的任何事情,但我似乎找不到任何有关这方面的信息_Ruby_Void_Return Type - Fatal编程技术网

Ruby替代void返回类型 我的经验是在C语言(C,C++,爪哇,C)中,函数的返回类型可以无效,即不返回。但是在Ruby中,似乎每个函数都返回一些东西。我想知道在Ruby中返回什么,它将不会返回java或C++中的任何东西。我最好的猜测可能是nil或包含方法(用于链接)的对象,或者忽略最后发生的任何事情,但我似乎找不到任何有关这方面的信息

Ruby替代void返回类型 我的经验是在C语言(C,C++,爪哇,C)中,函数的返回类型可以无效,即不返回。但是在Ruby中,似乎每个函数都返回一些东西。我想知道在Ruby中返回什么,它将不会返回java或C++中的任何东西。我最好的猜测可能是nil或包含方法(用于链接)的对象,或者忽略最后发生的任何事情,但我似乎找不到任何有关这方面的信息,ruby,void,return-type,Ruby,Void,Return Type,Ruby中的void有什么替代方案?Put return nil 在方法中的最后一个语句中 或者干脆 nil 如果您不希望返回任何内容,则可以使用return nil。但是为什么呢 通过不给变量分配函数调用,您可以愉快地忘记返回的内容。返回的值将不存储在任何位置,并将在垃圾收集中丢失。nil与void不同。可以将变量设置为nil,但不能将其设置为void。如果函数返回nil,则可以将其赋值给一个没有错误的变量,但如果使用void函数(在java或支持void函数的某种语言中)尝试此操作,编译

Ruby中的void有什么替代方案?

Put

return nil
在方法中的最后一个语句中

或者干脆

nil

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


通过不给变量分配函数调用,您可以愉快地忘记返回的内容。返回的值将不存储在任何位置,并将在垃圾收集中丢失。

nil与void不同。可以将变量设置为nil,但不能将其设置为void。如果函数返回nil,则可以将其赋值给一个没有错误的变量,但如果使用void函数(在java或支持void函数的某种语言中)尝试此操作,编译器将发出吠声。我不是ruby的超级专家,但我找不到任何迹象表明void的概念是受支持的。所有函数都返回某个值,即使该值为零。如果这是错误的,那么我希望有更多ruby知识的人可以提供一个反例

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


我意识到C有一个叫做void指针的东西。这是“void”一词完全不同的用法。空指针实际上包含一个地址并指向某个对象。让我们暂时忽略这些;我提到它们只是为了避免徒劳的反驳。我们关注的是ruby中的函数,它实际上什么也不返回,据我所知,它并不存在。

空函数(
def foo;end
)也隐式返回
nil
。@Zoidberg这是真的,但有实际用途吗?好吧,为了保持一致,我会从返回“void”的函数返回
nil
也是。从Ruby 2.1开始,空方法不再返回
nil
@迪米特:这是另一个问题<代码>a=def foo;结束和
b=foo()
。您谈论的是a是如何
:foo
,但我们谈论的是b是如何为零如果您至少不考虑方法中最后一个表达式的计算结果,您可能会意外泄漏有关方法实现的信息,人们可能会开始依赖它,即使您的文档中另有说明。