吐槽
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)