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))
相关推荐
coding随想4 分钟前
掌控网页的魔法之书:JavaScript DOM的奇幻之旅
开发语言·javascript·ecmascript
问道飞鱼8 分钟前
【移动端知识】移动端多 WebView 互访方案:Android、iOS 与鸿蒙实现
android·ios·harmonyos·多webview互访
爱吃烤鸡翅的酸菜鱼23 分钟前
IDEA高效开发:Database Navigator插件安装与核心使用指南
java·开发语言·数据库·编辑器·intellij-idea·database
心情好的小球藻1 小时前
Python应用进阶DAY9--类型注解Type Hinting
开发语言·python
惜.己1 小时前
使用python读取json数据,简单的处理成元组数组
开发语言·python·测试工具·json
Y4090011 小时前
C语言转Java语言,相同与相异之处
java·c语言·开发语言·笔记
mascon1 小时前
U3D打包IOS的自我总结
ios
名字不要太长 像我这样就好2 小时前
【iOS】继承链
macos·ios·cocoa
karshey2 小时前
【IOS webview】IOS13不支持svelte 样式嵌套
ios
潜龙95273 小时前
第4.3节 iOS App生成追溯关系
macos·ios·cocoa