回答
我可以有零个 参数的功能,并没有返回类型
是的,尽管许多语言要求你申报的void
或在这种情况下,类似的返回类型。
在哪里使用这些类型的功能,
除非定义“功能”严格表示“没有副作用”,他们可以成为副作用,例如有用有用
public void invalidate()
{
this.invalid = true;
}
这将成为可以失效的对象的一部分(并且一旦发生这种情况,将永远保持无效状态)。
当然,在完全不允许副作用的纯函数式语言中,这种情况是不可能的 - 但是在这样的语言中,没有返回值的函数通常是没有意义的。
,也是我的疑问是什么呢无效 函数返回一个空值或零 值我很困惑。
它什么都没有返回。如果你试图在任何地方使用它,它会产生一个返回类型(例如,作为另一个函数的参数),你会得到一个编译器错误。
是的,例如,如果一个函数只是打印出“hello world”或者一些计算,那么它可以不带任何参数,并且根本不需要返回任何值。
例如,你可以有一个PHP函数
function printPageFooter() {
echo "<p>Thanks for coming. Come back soon!</p>\n";
}
实际打印出网页的HTML中的页脚。这个函数不带任何参数并打印出来,并且不返回任何东西。
如果是如C语言,然后当你说
void PrintPageFooter() {
/* do something */
}
你说的这个功能不会在函数定义的前使用“空缺”返回任何东西。
我记得在帕斯卡尔,当我很久以前学会它时,所有的函数都必须返回一些东西。如果不是,那么它就是一个“程序”。
如果您可以指定您学习的语言,那将会很有帮助。
无论如何,在我所知道的通用语言中,答案是肯定的。 有时是需要具备的功能来为你做的东西,没有参数笔录并没有返回值:
VB:
Sub DoAction() 'Takes 0 parameters
'Do actions
'Doesn't return a value
End Sub
C#:
void DoAction() //Takes 0 parameters
{
//Do actions
//Doesn't return a value
}
当然可以的啊,例如它可以将一些计算结果打印到屏幕上;)
只有在允许副作用的语言中才有意义,当您只需要副作用时可以使用它。例如,考虑在控制台应用程序上长时间运行的操作。为了让用户知道你没有被屏蔽,你可能需要在屏幕上每隔一段时间打印一个点。
void printdot() {
printf(".");
}
该功能不需要任何参数也没有任何返回值,并且仍然是有意义的本身。您调用函数来实现副作用(更改屏幕)。
不要将它与数学函数混淆。函数(或过程或子例程)是一些代码块。他们帮助程序员编写结构化代码。如果你想要一个例程的结果,那么你可以有一个。就这样。
在编程理论和大多数计算机语言中,答案是否定的;函数必须具有返回值。
但是,某些语言(例如C系列(C,C++,Java,Javascript,C#等))使用函数的退化概念,该函数将子例程视为没有返回值的函数。因此,在这些语言中,答案是“是”,您将使用这些函数(实际上是子例程)来生成由环境或上下文状态驱动的操作副作用。
- 1. 我可以在Template中使用DynamicParameters并在dapper中使用返回参数吗?
- 2. 我可以使用参数返回ModelAndView吗?
- 3. 我可以返回参考吗?
- 4. 可以abs(random())%someNumberGreaterThanZero返回零吗?
- 5. 我可以使用单可变对于返回2个参数
- 6. 我可以使用参数枚举吗?
- 7. 我可以回去不使用ReSharper吗?
- 8. 我可以更改Int.TryParse返回-1而不是零解析不成功吗?
- 9. 我可以在带返回的函数中使用URLSession吗?
- 10. 我可以使用类模板返回类型的函数吗?
- 11. 我可以在非无效返回函数上使用[[noreturn]]吗?
- 12. 我可以使用Azure函数进行SQL查询并返回结果吗?
- 13. 我的void函数返回一个值并且不返回到主函数。
- 14. Typescript函数总是返回父对象并且不返回值
- 15. 我可以并且应该使用Eclipselink进行非数据库交互吗?
- 16. 我可以返回内置管道吗?
- 17. 我可以从方法返回StreamReader吗?
- 18. SetTimer返回非零,但它不是我提供的id,并且我的回调从不触发
- 19. 我可以更新INT值+1并返回新值吗?
- 20. 我们可以从模板返回函数访问已解析的参数吗?
- 21. SQL - 计数不返回零
- 22. 我可以使用jmock替换工厂返回的实现吗?
- 23. 我可以使用Google Places API返回住宅地址吗?
- 24. 我可以使用XML :: Simple返回解析的XML路径吗?
- 25. ServiceLocator.Current.GetInstance可以返回null吗?
- 26. getBestProvider可以返回null吗?
- 27. 可可NSNumberFormatterCurrencyStyle无“$”返回零
- 28. main()函数可以返回double吗?
- 29. STUFF函数可以返回NULL值吗?
- 30. 函数中可以返回double *吗?
请指定您学习的语言,以便用户更容易回答您的问题并提供示例。 – Shimmy 2009-06-07 07:08:38
是的,你需要指定哪种语言。在许多语言(C,C++,javascript等)中,术语“功能”涵盖了子例程(可能有副作用)以及“纯”功能。 – Dipstick 2009-06-07 07:34:30