《Swift 权威指南》——第6章,第6.1节函数的定义和调用

简介:

本节书摘来自异步社区《Swift 权威指南》一书中的第6章,第6.1节函数的定义和调用,作者 李宁,更多章节内容可以访问云栖社区“异步社区”公众号查看

第6章 丰富多彩的功能——函数
Swift 权威指南
Swift语言为函数提供了丰富多彩的功能。但从功能上来说,Swift函数和其他语言的函数相比是非常强大的,在后面章节要介绍的方法与函数基本上一致。不过在本章先不讨论方法的细节,只介绍函数的各种功能和使用方法。

本章要点

函数的定义和调用
返回多种的函数
扩展参数
扩展参数和内部参数使用同一个名字
默认参数值
可变参数
常量和变量参数
输入/输出参数
函数类型
嵌套函数

6.1 函数的定义和调用
源代码文件:src/ch06/function/function/main.swift

Swift并不是纯的面向对象语言,所以和C++一样,支持函数。函数和方法的区别就是函数是全局的,而方法的作用域仅限于方法内。要想引用方法,必须先要引用包含该方法的对象。也可以将方法看成是定义在类中的函数。因此,函数和方法的定义规则基础一致。在后面讲到类时再详细讨论方法的细节。本节先来讨论如何定义一个函数。

不管是什么语言,函数都必须由下面几部分组成。

函数名。
返回值类型。
函数的参数列表,在列表中包含参数名(形参)和参数类型。
函数体。
定义Swift语言的函数也逃不出这几项。下面看一下Swift函数的语法形式。

func functionName(paramName1:paramType1, paramName2,paramType2,...) -> returnType
{
    function body
}

很明显,Swift函数和C语言的函数在定义上差异很大。首先,Swift函数必须以func开头,然后跟着函数名,接下来是函数参数列表,最后是返回值类型。其中函数参数列表和返回值类型之间需要用“→”分隔。最后需要用一对花括号({...})将函数体括起来,这里面函数参数类型列表和返回值类型都是可选的。如果不指定函数参数列表,则函数没有参数,但必须在函数名后面指定一对圆括号。如果不指定返回值类型,则函数没有返回值,相当于C语言函数前面指定了void。

下面是一个标准的Swift函数的代码,该函数接收一个String类型的参数,返回一个String类型的值,最后调用了sayHello函数,并输出了函数的返回值。

func sayHello(personName: String) -> String
{
    let greeting = "hello " + personName + "!"
    return greeting
}
//  调用sayHello函数
println(sayHello("李宁"))

执行这段代码后,会输出如下内容。

hello 李宁!

下面是一些其他形式的函数(多个参数、没有参数、没有返回值)。

//  多个参数的函数
func add(a:Int, b:Int) -> Int
{
    return a + b
}
//  调用add函数
println(add(20, 30))
//  没有参数,但又返回值的函数
func process() -> Float
{
    return 3*20
}
//  调用process函数
println(process())
//  既没有参数,也没有返回值的函数
func method()
{
    println("hello world")
}
//  调用method方法
method()

执行这段代码后,会输出如下内容。

50
60.0
hello world
相关文章
|
编译器 Swift
在Swift中定义常量(Constant)
在Swift中定义常量(Constant)
325 2
|
编译器 Swift
在Swift编程语言中,定义变量
在Swift编程语言中,定义变量
220 1
|
存储 定位技术 Swift
Swift 中的枚举与结构体,包括它们的定义、特性、使用场景及示例
本文深入探讨了 Swift 中的枚举与结构体,包括它们的定义、特性、使用场景及示例。枚举适合表示有限的、离散的状态或选项,结构体则适用于具有特定属性和行为的数据结构。两者在存储方式、继承性和灵活性上有所不同,但在实际开发中常结合使用,以充分发挥各自优势。
319 3
|
设计模式 安全 测试技术
Swift代码审查的关键点及最佳实践,涵盖代码风格一致性、变量使用合理性、函数设计、错误处理、性能优化、安全性、代码注释等方面,旨在提升代码质量和项目管理水平
本文深入探讨了Swift代码审查的关键点及最佳实践,涵盖代码风格一致性、变量使用合理性、函数设计、错误处理、性能优化、安全性、代码注释等方面,旨在提升代码质量和项目管理水平。通过实际案例分析,展示了如何有效应用这些原则,确保代码的高可读性、可维护性和可靠性。
306 2
|
安全 编译器 Swift
Swift 函数
10月更文挑战第27天
92 1
|
Swift C++ 索引
Swift开发——简单函数实例
函数是编程的基础,用于封装特定功能的代码。它们有关键词func、函数名、参数列表(可为空)和返回类型。多返回值可通过元组、数组、inout参数或可选类型实现。例如,返回元组 `(value1, value2)`,数组 `[value1, value2]` 或使用可选数组 `[[Double]]?`。函数可以作为其他函数的参数,类似闭包或Lambda表达式。在Swift中,示例展示了通过元组、带索引的元组、数组和可选类型返回多个值的函数。还演示了如何使用inout参数交换变量值。
267 5
Swift开发——简单函数实例
|
Swift iOS开发 Kotlin
苹果iOS新手开发之Swift中实现类似Kotlin的作用域函数
Swift可通过扩展实现类似Kotlin作用域函数效果。如自定义`let`, `run`, `with`, `apply`, `also`,增强代码可读性和简洁性。虽无直接内置支持,但利用Swift特性可达成相似功能。
232 7
Swift4.0判断本函数是否在其它类有相同的方法
Swift4.0判断本函数是否在其它类有相同的方法
165 0
|
存储 API Swift
【Swift开发专栏】Swift函数与闭包的实战应用
【4月更文挑战第30天】本文介绍了 Swift 中函数和闭包的实战应用。首先,函数的基本使用包括定义、参数与返回值、函数类型以及高级技巧如嵌套函数。接着,讨论了闭包的语法,包括无名函数、作为函数参数、简写形式和尾随闭包。最后,展示了函数和闭包在实战中的应用,如排序过滤集合和处理异步任务的回调。
216 0
|
存储 Swift
Swift 语言:什么是闭包(Closure)?它们与函数的区别是什么?
Swift 语言:什么是闭包(Closure)?它们与函数的区别是什么?
376 1