鱼C论坛

 找回密码
 立即注册
查看: 1765|回复: 1

[见证历程] 5.1 swift 学习过程

[复制链接]
发表于 2019-10-30 16:00:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
官方教程:[https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html](https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html)
个人博客:http://140.238.1.66:9002/
## 1. 注释
```text
//var 表示变量

/* let 表示常量,
@@@@@@@@ */
```

## 2. 基础类型

> Int 有符号整型 32位系统:Int32 64位系统:Int64
> UInt 无符号整型 32位系统:UInt32 64位系统:UInt64
> Double 浮点数 占64字节
> Float 浮点数 占32字节
> Bool 布尔类型
> Character 字符
> String 字符串

### coding

  1. import Cocoa

  2. var a:Int = Int.max
  3. //二进制
  4. var a1:Int = 0b10
  5. //16进制
  6. var a2:Int = 0x12
  7. //64字节 浮点数
  8. var b:Double = 2.0
  9. //32字节 浮点数
  10. var c:Float = 1.0
  11. var d:Bool = true
  12. var e:Character = "A"
  13. var g:String = "(*′▽`)ノノ"
  14. // \()可用于表达式读取
  15. print("a=\(a)")
  16. //可选类型
  17. var opA:String? = "sa"

  18. if let str = opA {
  19.     print("opA'值=\(str)")
  20. }else {
  21.     print("opA'值 为空")
  22. }
  23. ```

  24. ## 3. 运算符
  25. > 百度更详细

  26. ## 4. 关键字
  27. > 百度更详细

  28. ## 5. 元组
  29. ### coding

  30. ```swift
  31. import Cocoa

  32. //不指定类型
  33. var a = (1,2,2)
  34. //指定元素
  35. print("a0=\(a.0)")

  36. //指定类型
  37. var b:(String, Int, Bool) = ("21", 1, true)
  38. print("b=\(b)")

  39. //设置可选项

  40. var c:(String, Int)?

  41. print("c 当前值:\(c)")

  42. if c == nil {
  43.     c = ("找不到页面", 404)
  44. }

  45. //取值方式一,optional必须有值
  46. print("c! 方式取值=\(c!.0)")

  47. //取值方式二、?符号进行步骤分解 为nil,直接跳转值else
  48. if let str = c?.0 {
  49.     print("if c? 方式取值=\(str)")
  50. }
  51. ```

  52. 6. 集合类型
  53. ### coding
  54. ```swift
  55. import Cocoa

  56. // Array 操作
  57. //方式一
  58. //var intArray = [1,2,3]
  59. //方式二
  60. //var intArray = Array<Int>(arrayLiteral: 1,2,3)
  61. //方式三
  62. //var intArray = [Int]()
  63. //方式四
  64. var intArray = Array(repeating: 0, count: 3);
  65. var intArray2 = [2,3,4]

  66. intArray.append(4) // 新增
  67. print("intArray 数组内容:\(intArray)")
  68. print("intArray2 数组内容:\(intArray2)")
  69. print("拼接后的数组:\(intArray + intArray2)")
  70. //替换下标 0<= x <=1的内容
  71. intArray[...1] = [2,3]
  72. print("修改后 intArray 数组内容:\(intArray)")

  73. //替换下标 0<= x <1的内容
  74. intArray[0..<1] = [8]
  75. print("修改后 intArray 数组内容:\(intArray)")

  76. //遍历
  77. print("intArray 遍历:")
  78. for item in intArray {
  79.     print(item, separator: "", terminator: " ")
  80. }
  81. print()
  82. // Set 操作
  83. var sNames:Set<String> = ["&#128513;", "窝", "w"]
  84. print("sNames=\(sNames)")
  85. sNames.insert("w")
  86. print("新增w后 sNames=\(sNames)")

  87. // Dictionary 操作
  88. //方式一
  89. var maps = [Int:String]()
  90. //方式二
  91. //var maps:[Int:String] = [:]
  92. //方式三
  93. //var maps:Dictionary<Int,String> = Dictionary<Int,String>()

  94. //元素新增
  95. maps[1] = "hello"
  96. //maps.updateValue("hello", forKey: 1)

  97. //元素删除
  98. print("maps=\(maps)")

  99. //遍历 方式一
  100. for item in maps {
  101.     print("key=\(item.key) val=\(item.value)")
  102. }

  103. //遍历 方式二
  104. //for (key, value) in maps {
  105. //    print("key=\(key) val=\(value)")
  106. //}

  107. //maps[1] = nil
  108. if let value = maps.removeValue(forKey: 1) {
  109.     print("maps 删除key=1 ,value= \(value)")
  110. }

  111. print("删除后 maps=\(maps)")

  112. ```
  113. ### set 方法归纳
  114. ![image.png](http://140.238.1.66:9002/upload/2019/10/image-08d20a3cf110450791121ab5c2b5b82a.png)

  115. 7. 异常处理
  116. ### coding
  117. ```swift
  118. import Cocoa

  119. //class、enum、struct
  120. enum MEnumErrors : Error {
  121.     case NotDuang
  122.     case GGGG
  123. }

  124. class MClassErrors : Error {
  125.     var msg:String
  126.    
  127.     init(_ msg:String) {
  128.         self.msg = msg
  129.     }
  130. }

  131. func pang(_ a:Int) throws{
  132.     guard a != 1 else {
  133.         throw MEnumErrors.NotDuang
  134.     }
  135.    
  136.     if a == 2 {
  137.         throw MClassErrors("class 子类异常")
  138.     }
  139. }

  140. do {
  141.     try pang(1)
  142.     print("无异常")
  143. } catch MEnumErrors.GGGG{
  144.     print("捕获异常 GGGG")
  145. } catch MEnumErrors.NotDuang{
  146.     print("捕获异常 NotDuang")
  147. }

  148. let err = try? pang(2)

  149. //不建议使用
  150. //let err = try! pang(2)

  151. if err == nil {
  152.     print("有异常抛出")
  153. }else {
  154.     print("没异常")
  155. }

复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-11-2 09:44:41 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 14:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表