我已经填补了现有Swift编程语言技能的一些空白,然后再转向更高级的功能。
我检查了苹果......" Swift编程语言"指南和谷歌搜索显示了有关使用参数的规则的大量信息,但我正在寻找整体为什么,而不是如何......
问题:
为什么需要在Swift中为函数提供参数和返回值类型?
(我不是询问参数名称等,而是关于“为什么'”的更高级别(一般)问题
我在Swift中使用简单的C-Style函数制作了许多程序,而不需要参数或返回值,因为我知道函数应该为我做什么。
很简单,例如
func printName() {
print("John")
}
然而,有例外'像一些内置的Swift函数。 E.g ....
func tableView(tableView:UITableView,numberOfRowsInSection section:Int) - > Int { 返回colors.count }
等。用于表视图或集合视图用法。
因此,我在函数中看到使用参数+返回值(类型)的唯一原因是确保只输入和输出特定类型的数据。
换句话说,它是一种避免意外结果的方法。所以行为几乎就像一个Switch语句,如果我满足一个特定的条件 - 将会出现一个特定的输出......(在函数中......"一个动作")。
我是否理解这种理解,试图理解为什么/何处需要使用参数& /或使用函数返回值类型?还是有其他实际原因吗?如果是这样,你能提供一个例子吗?
非常感谢提前!!!!
答案 0 :(得分:2)
如果您不使用参数,则可以使用范围内可见的内容。
你确实想要使用参数传递内容。这样你就可以:
此外,拥有明确的返回类型有助于其他开发人员和您的未来自我理解从该功能返回的内容:一个元组?一个可选的数组?一个号码?此外,定义输出类型可帮助您测试功能。
仅使用全局变量&程序(处理这些全局变量的代码块)可以小规模地工作。这种旧方法与FORTRAN,BASIC,COBOL等语言一起使用......在项目发展的那一刻,您需要将代码的一部分与另一部分隔离开来。为此:
答案 1 :(得分:0)
让我们设想一个sum
函数
func sum(a: Int, b:Int) -> Int {
return a + b
}
func sum(a, b) -> Int {
return a + b // what?
}
当然,编译器不允许这样做,但让我们试着想象一下。
现在a
和b
可以是任何内容(例如String
和UIImage
)。我们如何编写代码来汇总2 things
并获得Int
?
func sum(a:Int, b:Int) -> ??? {
return a + b
}
现在让我们尝试调用我们的疯狂功能
let tot: Int = sum(1, b: 2)
但由于sum
可以返回任何类型的值,我们如何将结果放入Int
常量?