在本章中,你将学会函数的常见使用方法。
前言
和Apple
官网或者网上分享的教程类文章不同,我将以实际开发角度讲述Swift
语言的一些概念和用法,方便大家更好地学习和掌握Swift
语言。
这同时也是对自己学习Swift
语言过程的知识整理。
如有错误,以你为准。
我们新建一个PlayGround
文件,命名为SwiftFunction
。
函数的定义
在Swift
开发过程中,我们一般说的是函数方法,即完成某一个工作(校验、业务规则等)的方法。在MVC、MVVM
开发模式中,C
和、VM
部分承载的就是实现某个业务逻辑的函数方法,方法用关键字fun
定义。示例:
//函数的定义-判断文字数量 func textChek(text:String)->Bool{ if text.count < 1 { return true } else { return false } }
上述代码中,我们func
定义了一个textChek
的方法,它需要传入一个String
类型的参数text
,判断text
的数量count
是不是小于1
,如果是则返回true
,如果大于等于1
,则返回false
。
函数的参数
在Swift
语言中,函数的参数可以为空
,也可以有多个
参数,便于不同的业务场景下使用。示例:
// 函数的返回-获取plist数据文件的路径 func dataFilePath() -> URL { documentsDirectory().appendingPathComponent("PortraitModel.plist") }
上述代码中,可以看到我们定义的dataFilePath
方法是没有传入参数的,返回值的是一个URL
地址类型。
也就是说,我们的方法可以作为一个规则进行调用,将业务逻辑都写在函数方法里,直接调用,只需要函数方法的返回结果。
MVVM
开发模式的好处是,我们VM
的部分可以将所有业务方法写在一个文件中,然后View
页面的交互用到什么方法直接调用。
函数也可以是多参数传入的情况,像账号密码,多参数传入,最终给出结果。示例:
//函数的定义-判断文字数量 func textChek(personName:String, password:String)->Bool{ if personName.count || password.count < 0 { return false } else { return true } }
函数的返回
另外,我们也可以有参数传入,没有返回值,主要用于上传信息到服务器,或者写入本地文件或者缓存中。示例:
//写入本地数据 func saveItems() { let encoder = PropertyListEncoder() do { let data = try encoder.encode(items) try data.write(to: dataFilePath(), options: Data.WritingOptions.atomic) } catch { print("Error writing items to file: \(error.localizedDescription)") } }
上述的代码中,我们定义了一个saveItems
方法,我们可以看到它没有返回值,它通过其他函数方法获得网络的数据,然后获取到的数据写入本地中。
另外,我们也定义函数方法并指定返回值的类型,我们使用“->
”可以返回一个指定的类型的结果。示例:
// 函数的定义-判断网址合法性 func errorURL(url: String) -> Bool { let currrentURL = "^(https?:\\/\\/)?([\\da-z\\.-]+)\\.([a-z\\.]{2,6})([\\/\\w \\.-]*)*\\/?$" let regextestURL = NSPredicate(format: "SELF MATCHES %@", currrentURL) if regextestURL.evaluate(with: url) == false { return false } else { return true } }
上述代码中,我们定义了一个判断url
地址是否为正确网站地址的方法errorURL
,通过外界传入String
字符串类型的url
,在方法内检验是否正确,然后return
一个Bool
值的结果。
函数的调用
我们定义好了函数方法,如果我们要调用函数方法,我们只需要直接在View
中调用即可。示例:
// 函数的调用-判断用户昵称是否为空 if textError(text: personName) { self.showToastMessage = "请输入您的昵称" self.showToast = true }
上述代码中,我们在View
文件中,调用这个定义好的方法,传入的参数是personName
用户名,如果用户名输入的字数小于1
,则系统执行接下来的操作。
以上就是本章的全部内容。
快来动手试试吧!