gpt4 book ai didi

Swift:为什么函数有参数和返回值类型?

转载 作者:可可西里 更新时间:2023-11-01 01:35:45 26 4
gpt4 key购买 nike

在转向更高级的功能之前,我正在填补我现有 Swift 编程语言技能的一些空白。

我已经检查了 Apples...“Swift Programming Language”指南,Google 搜索显示了很多关于使用参数的规则的信息,但我正在寻找总体原因,而不是如何...

问题:

为什么 Swift 中的函数需要有参数和返回值类型?

(我不是在询问参数名称等,而是关于“为什么”的更高级别(一般)问题)

我在 Swift 中使用简单的 C 风格函数编写了很多程序,不需要参数或返回值,这些程序工作正常,因为我知道这些函数应该为我做什么。

简单的例子

func printName() {
print("John")
}

但是,也有一些“异常(exception)”,比如一些内置的 Swift 函数。例如……

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return colors.count }

等 TableView 或 Collection View 的使用。

所以我认为在函数中使用参数+返回值(类型)的唯一原因是确保只输入和输出特定类型的数据。

换句话说,这是一种避免意外结果的方法。所以几乎就像一个 Switch 语句,如果我有一个特定的条件被满足——一个特定的输出将发生……(在函数中……“一个 Action ”)。

在试图理解为什么/在哪里需要使用参数和/或函数返回值类型时,我的理解是否正确?还是有其他实际原因?如果可以,您能否举个例子?

提前致谢!!!

最佳答案

如果您不使用参数,则只能使用范围内可见的参数。

  • 如果您的函数在 ViewController 中,则该 VC 中的所有属性,还有全局范围变量(可怕)
  • 如果你的函数在全局作用域中,你只能使用全局作用域符号(再次糟糕)

你真的很想用参数传递东西。这样您就可以:

  • 自动检查类型(编译为你做)
  • 检查可选性
  • 检查取值范围
  • 使用单元测试测试您的功能。如果您使用全局符号,您将被绑定(bind)到该符号,无法更改它们
  • 更少维护:职能之外的变化不会影响您

此外,拥有明确的返回类型有助于其他开发人员和您 future 的自己了解从该函数返回的内容:元组?可选数组?一个号码?此外,定义输出类型有助于您测试函数。

仅使用全局变量和过程(处理这些全局变量的代码块)可以在小范围内工作。这是使用 FORTRAN、BASIC、COBOL 等语言的旧方法……当您的项目增长时,您需要将代码的一部分与另一部分隔离开来。为此:

  • 使用函数和函数式方法
  • 使用面向对象

关于Swift:为什么函数有参数和返回值类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37612290/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com