当前位置: 首页 > news >正文

做哪一类的网站可以短时间变现管理系统开发

做哪一类的网站可以短时间变现,管理系统开发,做影集的网站或软件下载,seo怎么收费的最近在学习 Swift,总结相关知识 1. Protocols(协议) 1.1 协议的定义和实现 协议(protocol) 是一种定义方法和属性的蓝图,任何类、结构体或枚举都可以遵循协议。遵循协议后,需要实现协议中定义…

最近在学习 Swift,总结相关知识


1. Protocols(协议)

1.1 协议的定义和实现

  • 协议(protocol 是一种定义方法和属性的蓝图,任何类、结构体或枚举都可以遵循协议。
  • 遵循协议后,需要实现协议中定义的所有内容。
示例
protocol ExampleProtocol {var simpleDescription: String { get }mutating func adjust()
}
  • simpleDescription 定义了一个只读属性。
  • mutating 标记方法可以修改遵循协议的值类型(如结构体、枚举)。
实现协议
  • 类(class 遵循协议:

    class SimpleClass: ExampleProtocol {var simpleDescription: String = "A very simple class."var anotherProperty: Int = 69105func adjust() {simpleDescription += " Now 100% adjusted."}
    }
    
    • 方法 adjust 可以直接修改属性,无需标记为 mutating
  • 结构体(struct 遵循协议:

    struct SimpleStructure: ExampleProtocol {var simpleDescription: String = "A simple structure"mutating func adjust() {simpleDescription += " (adjusted)"}
    }
    
    • mutating 必须添加,因为结构体是值类型,默认情况下,方法不能修改实例。

1.2 扩展协议要求

向协议 ExampleProtocol 添加新的要求:

protocol ExampleProtocol {var simpleDescription: String { get }mutating func adjust()func detailedDescription() -> String
}class SimpleClass: ExampleProtocol {var simpleDescription: String = "A very simple class."func adjust() {simpleDescription += " Now 100% adjusted."}func detailedDescription() -> String {return "This is \(simpleDescription)"}
}struct SimpleStructure: ExampleProtocol {var simpleDescription: String = "A simple structure"mutating func adjust() {simpleDescription += " (adjusted)"}func detailedDescription() -> String {return "This is \(simpleDescription)"}
}

2. Extensions(扩展)

2.1 扩展定义

扩展可以用来为现有的类、结构体、枚举或协议添加功能,例如添加方法、计算属性或协议一致性。

示例:扩展 Int
extension Int: ExampleProtocol {var simpleDescription: String {return "The number \(self)"}mutating func adjust() {self += 42}
}
print(7.simpleDescription) // 输出:The number 7
实验:扩展 Double 添加 absoluteValue
extension Double {var absoluteValue: Double {return self >= 0 ? self : -self}
}
print((-3.14).absoluteValue) // 输出:3.14

3. Error Handling(错误处理)

3.1 错误类型

  • Swift 的错误类型必须遵循 Error 协议,通常用 enum 定义。
enum PrinterError: Error {case outOfPapercase noTonercase onFire
}

3.2 抛出和捕获错误

  • 使用 throw 抛出错误,使用 throws 标记函数可能抛出错误。
  • 使用 do-catch 捕获错误。
示例
func send(job: Int, toPrinter printerName: String) throws -> String {if printerName == "Never Has Toner" {throw PrinterError.noToner}return "Job sent"
}do {let printerResponse = try send(job: 1040, toPrinter: "Bi Sheng")print(printerResponse)
} catch PrinterError.noToner {print("No toner available.")
} catch {print(error)
}

3.3 使用 try?defer

  • try? 抛出错误时返回 nil
  • defer 无论函数是否抛出错误,都执行清理代码。
示例
let printerSuccess = try? send(job: 1884, toPrinter: "Mergenthaler")
let printerFailure = try? send(job: 1885, toPrinter: "Never Has Toner")func fridgeContains(_ food: String) -> Bool {defer { print("Fridge closed.") } // 确保清理return ["milk", "eggs"].contains(food)
}

4. Generics(泛型)

4.1 泛型函数

  • 泛型允许编写通用代码,支持多种类型。
func makeArray<Item>(repeating item: Item, numberOfTimes: Int) -> [Item] {var result: [Item] = []for _ in 0..<numberOfTimes {result.append(item)}return result
}
makeArray(repeating: "knock", numberOfTimes: 4)

4.2 泛型类型

  • 例如,重新实现 Swift 标准库的 Optional 类型:
enum OptionalValue<Wrapped> {case nonecase some(Wrapped)
}
var possibleInteger: OptionalValue<Int> = .none
possibleInteger = .some(100)

4.3 泛型约束

  • 使用 where 指定类型约束。
func anyCommonElements<T: Sequence, U: Sequence>(_ lhs: T, _ rhs: U) -> Boolwhere T.Element: Equatable, T.Element == U.Element {for lhsItem in lhs {for rhsItem in rhs {if lhsItem == rhsItem {return true}}}return false
}
anyCommonElements([1, 2, 3], [3])
实验:返回公共元素数组
func commonElements<T: Sequence, U: Sequence>(_ lhs: T, _ rhs: U) -> [T.Element]where T.Element: Equatable, T.Element == U.Element {var result: [T.Element] = []for lhsItem in lhs {if rhs.contains(lhsItem) {result.append(lhsItem)}}return result
}
print(commonElements([1, 2, 3], [3, 4, 5])) // 输出:[3]

总结

Swift 提供了许多现代化特性:

  1. Protocols 和 Extensions: 提供灵活的功能扩展和一致性约束。
  2. Error Handling: 提供 throwdo-catchtry? 等灵活的错误处理机制。
  3. Generics: 支持编写通用、高效、类型安全的代码。
  4. 类型安全性: Swift 的类型系统可以有效防止运行时错误,提升代码可靠性。
http://www.yayakq.cn/news/649089/

相关文章:

  • 珠宝网站建设谁的网站模板利于优化
  • 公司网站关键词优化深圳网站建设公司联系
  • 网站优化技术手机访问asp网站
  • 学习网站建设培训网络规划的内容
  • 厦门自主建站模板seo外包一共多少钱
  • 免费企业自助建站信息发布网海外网络推广招聘
  • 功能性的网站建设网站教程论坛
  • 建网站在哪买域名好点网站域名费用交给谁
  • 山东网站建设流程查询邮箱注册过的网站
  • 网站开发时遇到的问题做网站的公司深
  • 关于戒烟网站怎么做网站建设运营的成本
  • 网站栏目方案网站制作网站开发
  • 上海人才招聘网站谈谈百度和谷歌seo优化的区别
  • 电商网站建设 猪八戒网网站建设所需物资
  • 专业门户网站开发中信建设有限责任公司客户
  • 如何降低网站跳出率西安 网站托管
  • 江苏省住房和城乡建设厅网站企业网站每天更新
  • 企业做网站需要花多少钱wordpress底部悬停按钮
  • 贵州茅台酒股份有限公司网站钓鱼转转网站在线生成软件
  • 宁波江北区建设局网站动力网站代码
  • 中国工程建设监理协会网站wordpress魔客
  • 三星网上商城发什么快递seo站长综合查询工具
  • 湖南做网站 地址磐石网络北京网络电视台
  • 搭建网站的步骤和顺序网站小编可以在家做吗
  • 林州企业网站建设个人如果做网站赚钱吗
  • 珠海网站建设工程外贸出口流程的基本流程图
  • 短视频素材下载网站 免费百度网盘做网站
  • 赔率网站怎么做wordpress 添加icon
  • 本机网站建设一个备案号可以放几个网站
  • 徐州网站建设 网站制作做贸易要看什么网站