open
和 public
:允许实体被定义模块中的任意源文件访问,同样可以被另一模块的源文件通过导入该定义模块来访问。在指定框架的公共接口时,通常使用 open 或 public。internal
:允许实体被定义模块中的任意源文件访问,但不能被该模块之外的任何源文件访问。通常在定义应用程序或是框架的内部结构时使用。fileprivate
:将实体的使用限制于当前定义源文件中。当一些细节在整个文件中使用时,使用 fileprivate 访问隐藏特定功能的实现细节。private
: 将实体的使用限制于封闭声明中。当一些细节仅在单独的声明中使用时,使用 private 访问隐藏特定功能的实现细节。func readFileContent(filePath : String) -> String? {
// 1.filePath为""
if filePath == "" {
return nil
}
// 2.filepath有值,但是没有对应的文件
if filePath != "/User/Desktop/123.plist" {
return nil
}
// 3.取出其中的内容
return "123"
}
readFileContent("abc")
// 1.定义异常
enum FileReadError : ErrorType {
case FileISNull
case FileNotFound
}
// 2.改进方法,让方法抛出异常
func readFileContent(filePath : String) throws -> String {
// 1.filePath为""
if filePath == "" {
throw FileReadError.FileISNull
}
// 2.filepath有值,但是没有对应的文件
if filePath != "/User/Desktop/123.plist" {
throw FileReadError.FileISNull
}
// 3.取出其中的内容
return "123"
}
// 3.异常的处理三种方式
// 3.1.try方式,需要手动处理异常
do {
let result = try readFileContent("abc")
} catch {
print(error)
}
// 3.2.try?方式,不处理异常,如果出现了异常,则返回一个nil.没有异常,则返回对应的值
// 最终返回结果为一个可选类型
let result = try? readFileContent("abc")
// 3.3.try!方法,告诉系统该方法没有异常.
// 注意:如果出现了异常,则程序会崩溃
try! readFileContent("abc")
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有