SwiftUI-Day5 函数

文章目录

  • 吐槽
  • 结果
  • 无参函数
  • 带参数的函数
  • 有返回值的函数
  • 参数标签
  • 省略参数标签
  • 默认参数
  • 多态 - Variadic Functions
  • 抛出异常
  • inout 参数

吐槽

Xcode升级,什么appdelegate都没有了,现在全是swiftUI。。。
下面的代码是playground的代码,不是swiftUI View。
参考资料:https://www.hackingwithswift.com/100/swiftui/5
时间:09 October, 2020

结果

运行快捷键:shift+command+回车
删除当前行:option+D

无参函数

func printHelp() {
    let message = """
Welcome to MyApp!
"""
    print(message)
}
printHelp()

带参数的函数

func square(number: Int) {
    print(number * number)
}
square(number: 8)

有返回值的函数

func square(number: Int) -> Int {
    return number * number
}
let result = square(number: 8)
print(result)

参数标签

to name: to是在函数外面的名字,name是函数内部的名字,牛皮。。

func sayHello(to name: String) {
    print("Hello, \(name)!")
}
sayHello(to: "Taylor")

省略参数标签

func greet(_ person: String) {
    print("Hello, \(person)!")
}
greet("Taylor")

默认参数

func greet(_ person: String, nicely: Bool = true) {
    if nicely == true {
        print("Hello, \(person)!")
    } else {
        print("Oh no, it's \(person) again...")
    }
}
greet("Taylor")
greet("Taylor", nicely: false)

多态 - Variadic Functions

func square(numbers: Int...) {
    for number in numbers {
        print("\(number) squared is \(number * number)")
    }
    print(numbers[3])//访问单个元素
}

square(numbers: 1, 2, 3, 4, 5)

抛出异常

enum PasswordError: Error {
    case obvious
}

func checkPassword(_ password: String) throws -> Bool {
    if password == "password" {
        throw PasswordError.obvious
    }

    return true
}

如果这样写,并且抛出异常,password is good 永远都不会执行。

do {
    try checkPassword("password")
    print("That password is good!")
} catch {
    print("You can't use that password.")
}

inout 参数

inout类型实现指针的功能,厉害了

func doubleInPlace(number: inout Int) {
    number *= 2
}

var myNum = 10 
doubleInPlace(number: &myNum)

你可能感兴趣的:(swift)