函数 / 编程语言 / 返回值 · 2023年 10月 29日 0

函数返回值

56 次浏览

人为财死鸟为食亡。天下熙熙皆为利来,天下攘攘皆为利往。

不同语言的返回值

  • 大部分编程语言使用 return [val] 作为返回值。C系语言和Shell都是如此。
    C/ObjC/C++/Java/C#/Python/Shell/仓颉 等。
  • Shell有点特殊,如果没指定return, 将最后一条命令退出状态作为返回值。
  • VB 没有Return语句(VB.Net才有),函数名作为返回值,函数返回值可以传递给函数名返回。
  • 仓颉 不一定需要为函数指定返回值,编译器根据函数实现可以推测返回值。

多个返回值?

  • 大部分早期的编程语言不支持多个返回值,因为会让问题变得复杂。比如:
    • C/ObjC/C++/PHP 等。
    • 但并不意味无法返回多个值,可以利用指针参数传出返回值。
  • Python/Go 都支持函数的多个返回值。
    例如Python返回两个整数:
    def test():
    return (2, 3)
  • C# 7.0支持返回元组实现多个返回值,在此之前,必须用out参数来构造多个返回值。

成功返回

  • Shell函数返回和命令返回遵循相同原则,返回0代表成功,非0代表失败。这与编译型语言函数返回不太一样。

简洁返回

有些函数返回值仅仅是对参数的简单操作,一些编程语言提供简洁的返回方式。

  • C# 6.0引入了expression-bodied methods, 可将一个表达式当做函数返回值。
    public int Add(int a, int b) => a + b;

函数返回之后有其他语句?

  • C# 会警告这种代码。