这是我参与「第四届青训营 」笔记创作活动的第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()
}