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

网站模板预览与编辑器巴中微网站建设

网站模板预览与编辑器,巴中微网站建设,网站基础开发成本,网站模板是什么最近在学习 Swift#xff0c;总结相关知识 1. Protocols#xff08;协议#xff09; 1.1 协议的定义和实现 协议#xff08;protocol#xff09; 是一种定义方法和属性的蓝图#xff0c;任何类、结构体或枚举都可以遵循协议。遵循协议后#xff0c;需要实现协议中定义…最近在学习 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 structuremutating 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 structuremutating 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.143. 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 makeArrayItem(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 OptionalValueWrapped {case nonecase some(Wrapped) } var possibleInteger: OptionalValueInt .none possibleInteger .some(100)4.3 泛型约束 使用 where 指定类型约束。 func anyCommonElementsT: 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 commonElementsT: 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 提供了许多现代化特性 Protocols 和 Extensions 提供灵活的功能扩展和一致性约束。Error Handling 提供 throw、do-catch、try? 等灵活的错误处理机制。Generics 支持编写通用、高效、类型安全的代码。类型安全性 Swift 的类型系统可以有效防止运行时错误提升代码可靠性。
http://www.tj-hxxt.cn/news/227909.html

相关文章:

  • 企业网站案例怎么查网站是否被k
  • 如何做网站跳转页面登封网站设计
  • 北京做网站推广兼职aspcms建站
  • 企业网站建设专业去招聘网站做顾问
  • 网站管理员工作总结上海网站推广网络公司
  • 太原西北建设有限公司网站大连市建设部网站官网
  • 网站建设使用的什么软件有哪些甘肃省酒泉市做网站公司
  • 江门网站制作策划工程建设合同模板
  • 手机怎样建立网站一个网站每年维护费用
  • 矢量网站动画怎么做软件接口设计文档
  • 网站后台管理系统wordpress分类页首页调用分类描述
  • 个人网站开发与实现开题报告快速网站轻松排名
  • 永久打开本网站的音乐网站建设价格6
  • 吉林省 网站建设手机便宜网站建设
  • 哪些网站可以做网店常州市城乡建设学院网站
  • 人事处网站开发文献综述河南营销网站建设联系方式
  • 凤山县住房和城乡建设局网站17做网店这个网站做起多少钱
  • 网站名称注意事项注册域名邮箱
  • 网站月流量什么意思南宁网站建设培训
  • 挖矿网站开发南充响应式网站建设
  • 八年级微机网站怎么做网站开发后端有哪些
  • 做PPT素材图片网站 知乎购物网页模板
  • 专业模板建站软件外贸如何网络推广
  • 今鼎网站建设国外手机模板网站推荐
  • 住房和城乡建设部网站证书查询四平网站公司
  • 网站怎么做分享链接地址设计案例分享网站
  • 文字壁纸做背景处理的网站河间米各庄网站建设制作
  • 怎么用flash做网站江西智能网站建设哪家好
  • html 网站首页网站版面
  • 国外做调灵风暴的网站网站存在的问题及改进措施