12月30日 发表于 2019-10-30 16:00:48

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> = ["&#128513;", "窝", "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("没异常")
}

12月30日 发表于 2019-11-2 09:44:41

{:10_249:}
页: [1]
查看完整版本: 5.1 swift 学习过程