5.1 swift 学习过程
官方教程:(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
import Cocoa
var a:Int = Int.max
//二进制
var a1:Int = 0b10
//16进制
var a2:Int = 0x12
//64字节 浮点数
var b:Double = 2.0
//32字节 浮点数
var c:Float = 1.0
var d:Bool = true
var e:Character = "A"
var g:String = "(*′▽`)ノノ"
// \()可用于表达式读取
print("a=\(a)")
//可选类型
var opA:String? = "sa"
if let str = opA {
print("opA'值=\(str)")
}else {
print("opA'值 为空")
}
```
## 3. 运算符
> 百度更详细
## 4. 关键字
> 百度更详细
## 5. 元组
### coding
```swift
import Cocoa
//不指定类型
var a = (1,2,2)
//指定元素
print("a0=\(a.0)")
//指定类型
var b:(String, Int, Bool) = ("21", 1, true)
print("b=\(b)")
//设置可选项
var c:(String, Int)?
print("c 当前值:\(c)")
if c == nil {
c = ("找不到页面", 404)
}
//取值方式一,optional必须有值
print("c! 方式取值=\(c!.0)")
//取值方式二、?符号进行步骤分解 为nil,直接跳转值else
if let str = c?.0 {
print("if c? 方式取值=\(str)")
}
```
6. 集合类型
### coding
```swift
import Cocoa
// Array 操作
//方式一
//var intArray =
//方式二
//var intArray = Array<Int>(arrayLiteral: 1,2,3)
//方式三
//var intArray = ()
//方式四
var intArray = Array(repeating: 0, count: 3);
var intArray2 =
intArray.append(4) // 新增
print("intArray 数组内容:\(intArray)")
print("intArray2 数组内容:\(intArray2)")
print("拼接后的数组:\(intArray + intArray2)")
//替换下标 0<= x <=1的内容
intArray[...1] =
print("修改后 intArray 数组内容:\(intArray)")
//替换下标 0<= x <1的内容
intArray =
print("修改后 intArray 数组内容:\(intArray)")
//遍历
print("intArray 遍历:")
for item in intArray {
print(item, separator: "", terminator: " ")
}
print()
// Set 操作
var sNames:Set<String> = ["😁", "窝", "w"]
print("sNames=\(sNames)")
sNames.insert("w")
print("新增w后 sNames=\(sNames)")
// Dictionary 操作
//方式一
var maps = ()
//方式二
//var maps: = [:]
//方式三
//var maps:Dictionary<Int,String> = Dictionary<Int,String>()
//元素新增
maps = "hello"
//maps.updateValue("hello", forKey: 1)
//元素删除
print("maps=\(maps)")
//遍历 方式一
for item in maps {
print("key=\(item.key) val=\(item.value)")
}
//遍历 方式二
//for (key, value) in maps {
// print("key=\(key) val=\(value)")
//}
//maps = nil
if let value = maps.removeValue(forKey: 1) {
print("maps 删除key=1 ,value= \(value)")
}
print("删除后 maps=\(maps)")
```
### set 方法归纳
!(http://140.238.1.66:9002/upload/2019/10/image-08d20a3cf110450791121ab5c2b5b82a.png)
7. 异常处理
### coding
```swift
import Cocoa
//class、enum、struct
enum MEnumErrors : Error {
case NotDuang
case GGGG
}
class MClassErrors : Error {
var msg:String
init(_ msg:String) {
self.msg = msg
}
}
func pang(_ a:Int) throws{
guard a != 1 else {
throw MEnumErrors.NotDuang
}
if a == 2 {
throw MClassErrors("class 子类异常")
}
}
do {
try pang(1)
print("无异常")
} catch MEnumErrors.GGGG{
print("捕获异常 GGGG")
} catch MEnumErrors.NotDuang{
print("捕获异常 NotDuang")
}
let err = try? pang(2)
//不建议使用
//let err = try! pang(2)
if err == nil {
print("有异常抛出")
}else {
print("没异常")
}
{:10_249:}
页:
[1]