Swift--函数--05

函数是一段代码和一个会意的名字,用于执行特定的任务
使用函数叫“调用(call)”
就像公式一样,使用函数需要提供参数
函数调用的结果叫返回值
函数都有类型,包含参数和返回值类型。

定义函数:
形式:func函数名(参数1:类型,参数2:类型,...) -> 返回结果的类型 {执行语句 return 返回值}
调用: var 变量名称 = 函数名(变量1,变量2,...)

内部参数名,外部参数名

//简单示例:
//1.1
func add (a:Int, b : Int) -> Int {
    return a + b
}
var sum = add(a: 3, b: 4) // 7


//1.2
//使用_可以省略外部参数名
func add1 (_ a:Int,_ b : Int) -> Int {
    return a + b
}
add1(1, 2)

//2.1
func sayHello(name:String) -> String {
    return "Hello" + name
}
sayHello(name: " xiaobo")

//2.2
//一般第一个参数的外部参数名包含在函数名中,WithGreetingWord为外部参数名,greeting为内部参数名,会显示使用外部参数名
func sayHello1(name:String, WithGreetingWord greeting:String) -> String {
    return "\(greeting),\(name)!"
}
sayHello1(name: "xiaobo", WithGreetingWord: "Hi")   //Hi,xiaobo!

//3.1
//无参数无返回值,一般用于执行一系列的操作,不需要结果
func welcome() {
    print("欢迎光临")
}
welcome()
//多返回值(使用元组)
func maxMin() -> (Int,Int) {
    return (Int.min,Int.max)
}

maxMin().0
maxMin().1

//参数以   名称:类型   列出,多个参数间用逗号分隔
func add1(x:Int, y:Int, z:Int) -> Int {
    return x + y + z
}

add1(x: 1, y: 2, z: 3)


//可以给某个参数以默认值
func add2(x:Int, increment:Int = 2) -> Int {
    return x + increment;
}
add2(x: 3)
函数类型: 包含参数和返回类型的简写形式,可以像普通变量那样使用,一般用于函数式编程,比如:
(Int,Int) -> Int
func calculate(x:Int , y:Int , method:(Int,Int) -> Int) -> Int {
    return method(x,y)
}

func add3(x:Int ,y:Int) -> Int {
    return x + y
}

func multiply(x:Int,y:Int) -> Int {
    return x * y
}

calculate(x: 3, y: 4, method: add3(x:y:))
calculate(x: 3, y: 4, method: add3)
calculate(x: 5, y: 6, method: multiply)
可变参数:可变参数可以接受零个或多个值。函数调用时,你可以用可变参数来指定函数参数,其数量是不确定的。
import Cocoa

func vari<N>(members: N...){
    for i in members {
        print(i)
    }
}
vari(members: 4,3,5)
vari(members: 4.5, 3.1, 5.6)
vari(members: "Google", "Baidu", "Runoob")
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,268评论 0 4
  • 86.复合 Cases 共享相同代码块的多个switch 分支 分支可以合并, 写在分支后用逗号分开。如果任何模式...
    无沣阅读 1,429评论 1 5
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,896评论 18 139
  • 本章将会介绍 控制流For-In 循环While 循环If 条件语句Switch 语句控制转移语句 continu...
    寒桥阅读 742评论 0 0
  • 2016年2月23日19点32分 此刻正坐在宿舍里,百无聊赖地双手敲击键盘。新学期第二天,突然很想家。 很奇怪,以...
    板蓝根zz阅读 222评论 0 0