iOS开发Swift-函数

1.函数的定义和调用

复制代码
func greet(person: String) -> String {
//    函数名   传入值   传入值类型  返回值类型
    let greeting = "Hello" + person
    return greeting
}
print( greet(person: "Anna") )   //调用

2.函数的参数与返回值

(1)无参函数

复制代码
func sayHello() -> String {
    return "hello!"
}
print( sayHello() )

(2)多参函数

复制代码
func greet(person: String, alreadyGreeted: Bool) -> String {
    if alreadyGreeted {
        return greetAgain(person: person)
    }else {
        return greet(personn: person)
    }
}

(3)无返回值

复制代码
func greet(person: String) {
    print("Hello, \(person)")
}
greet(person: "Dave")

(4)多重返回值

复制代码
func minMax(array: [Int]) -> (min: Int, max: Int) {
    //业务代码
    return (a, b)
}

(5)可选元组返回类型(元组可以是nil)

复制代码
func minMax(array: [Int]) -> (min: Int, max: Int)? {
    //业务代码
    return (a, b)
}

(6)隐式返回的函数

复制代码
func greeting(for person: String) -> String {
    "Hello " + person
}
print(greeting(for: "Dave")

任一可以被写成一行return的函数,return(x) + for。

调用的时候: 方法名(for: 参数)

3.参数标签和参数名称

(1)指定参数标签

复制代码
func greet(from hometown: String) -> String {
    return "from \(hometown)."
}
print( greet(from: "Beijing") )

(2)忽略参数标签

复制代码
func some(_ a: Int, b: Int) {
    //代码
}
som(1, b: 2)

(3)默认参数值

复制代码
func some(a: Int, b: Int = 12) {
    //代码
}
some(a: 3, b: 6)   //b用6
some(a: 3)   //b用12

(4)可变参数

一个可变参数可接受0个或多个值。

复制代码
func arith(_ numbers: Double ...) -> {
    //代码
}
arith(1, 2, 3, 4, 5)

(5)输入输出参数(&)

函数参数默认为常量,不可修改。如果要修改,则要把参数设置为输入输出参数。

复制代码
func swap(_a: inout Int, _b: inout Int) {
    //代码
}
swap(&5, &7)

4.函数类型

复制代码
//类型: (Int, Int) -> Int
func add(_ a: Int, _ b: Int) -> Int {
  return a + b
}
//类型: () -> Void
func printHello() {
    print("H")
}

(1)使用函数类型

复制代码
var 变量: (Int, Int) -> Int = add
变量(2, 3)    //调用

(2)函数类型作为参数类型

复制代码
func printMath(_ mathFunction: (Int, Int) -> Int, a: Int, b: Int) {
    print( mathFunction(a, b) )
}
printMath(add, 3, 5)

(3)函数类型作为返回类型

复制代码
func choose(back: Bool) -> (Int) -> Int{
    return add
}
let move = choose(back: true)

5.嵌套函数

把函数定义到别的函数体中,对外界不可见,但可以被他们的外围函数调用。

复制代码
func addMul(a: Int, b: Int, c: Int) -> Int {
    func add(d: Int, e: Int) -> Int { return d + e }
    func mul(f: Int, g: Int) -> Int { return f * g }
    return mul(a, add(b, c))
}
print(addMul(1, 2, 3))
相关推荐
always_TT7 分钟前
C语言保留字与标识符规则
c语言·开发语言
yang_upup9 分钟前
Matlab里simulink的元器件介绍
开发语言·matlab
滑雪的企鹅.17 分钟前
Kotlin云头条技术点剖析(项目复习02)——用户协议页面
android·开发语言·kotlin
南 阳39 分钟前
Python从入门到精通day59
开发语言·python·php
JMchen12339 分钟前
Android NDK开发从入门到实战:解锁应用性能的终极武器
android·开发语言·c++·python·c#·android studio·ndk开发
ZZH_AI项目交付1 小时前
为什么很多复杂跳转,最后都得先回首页?
flutter·ios
会飞De琥珀1 小时前
java工具类,字符串转时间
java·开发语言
源码潇潇和逸逸1 小时前
独立部署高校圈子平台:PHP+UniApp打造社交+交易+服务一站式校园解决方案
开发语言·uni-app·php
LINgZone21 小时前
深入解析:Cglib与JDK动态代理的实现原理、区别及性能对比
java·开发语言
一次旅行1 小时前
今日心理学知识分享(三)
开发语言·javascript·程序人生·ecmascript