《Swift 权威指南》——第6章,第6.1节函数的定义和调用-阿里云开发者社区

开发者社区> 异步社区> 正文

《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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
array_unshift() 函数在数组开头插入一个或多个元素。被加上的元素作为一个整体添加,这些元素在数组中的顺序和在参数中的顺序一样 array_unshift()定义和用法 array_unshift() 函数在数组开头插入一个或多个元素。
669 0
c#中跨线程调用windows窗体控件
c#中如何跨线程调用windows窗体控件? 我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来做这个问题,下面我将详细的介绍。首先来看传统方法: public partial class Form1 : Form...
1014 0
[已解决]:调用 LoadLibraryEx 失败,在 ISAPI 筛选器 "c:\Windows\Microsoft.NET\Framework\v4.0.30319\\aspnet_filter.
原文: [已解决]:调用 LoadLibraryEx 失败,在 ISAPI 筛选器 "c:\Windows\Microsoft.NET\Framework\v4.0.30319\\aspnet_filter.
1498 0
Swift函数
<div> <p><span style="font-size:14px;">函数定义</span></p> <p><span style="font-size:14px;"> </span></p> <p><span style="font-size:14px;">使用 func 定义一个函数。调用函数使用他的名字加 上小括号中的参数列表。使用 -&gt; 分隔参数的名字和 返回值类型。</
827 0
开发指南—函数—拆分函数—YYYYDD
本文介绍YYYYDD函数的使用方式。
11 0
开发指南—函数—拆分函数—DD
本文将介绍DD函数的使用方式。
19 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
11941
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载