Swift 入门与实践| 青训营笔记

87 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第17天
本篇文章将会记录“Swift 入门与实践”一课中的重点知识以及笔记

Swift 基础语法

变量 常量

变量定义: var

常量定义: let

类型推断: Swift能够省略声明类型, 并在编译时自行推断变量类型

类型集合: 数组、字典、合集

可选值: nil(空指针), 用?或者!表示, 可以用is as转换类型, 注意不要使用!强制接包

var name:String? = "Mike";
if var name = name as? String{ /*code*/ }

函数: 形式如下, 在参数名前添加“_”下划线, 在调用时可以省略参数名

func function1(){}
func function2(person: String){}
func function2(_ person: String) -> String {}

fucntion1()
function2(person: “Tom”)
function2(“Tom”)

一个类可以继承自另一个类, 并重写(overide)其方法, 不继承其他类的成为基类

类的定义:

class Class1: FatherClass { /*code*/ }

类的实例化:

let class1 = Class1()

类的访问:

var variable = class1.member
class1.function1()

类的扩展:

extension SomeClass { /* code */ }

协议

协议为方法、属性等提供定义蓝图, 能够为类、结构体等类型采纳并提供所需要的功能的实现

满足了协议中的需求则成为遵循协议

协议的定义:

protocol Protocol { 
    var variable1: Int { get set } 
    var variable2: Int { get } 
}

协议的使用:

protocol Protocol1 { 
    //protocol code
} 
func function (protocol: Protocol1) {} 
var someProtocol: Protocol1 
var someProtocols: [Protocol1]

协议的扩展:

extension RandomSelectStudent: RandomNumberGenerator { }

泛型

为所存储或使用的一个或者多个类型的占位符, 将类型形参作为其存储的对象类型占位符

泛型的使用:

func swapTwoValues<T>(_ a: inout T, _ b: inout T) { 
    let temporaryA = a 
    a = b 
    b = temporaryA 
}

泛型类型

除了上述中使用泛型方法之外, Swift还能够定影自己的泛型类型, 可以是任何类型的自定义类、结构体、枚举

SwiftUI

SwiftUI是Apple为开发者提供的一套新的UI开发工具, 具有 实时加载界面、先进的布局设计、能够与UIKit兼容的优点

语法特点:

VStack {
    Text("Hello, world!") 
        .padding() 
    Text("Hello, world!") 
        .padding() 
}