Swift学习笔记&SwiftUI初尝试
Swift
一、循环
1.循环类型
Swift中的循环与C语言中用法类似:
类型 | 描述 |
---|---|
for- in循环 | 用于遍历一个集合里面的所有元素,例如由数字表示的区间、数组中的元素、字符串中的字符。 |
while 循环 | 从计算单一条件开始。如果条件为true,会重复运行一系列语句,直到条件变为false。 |
repeat…while循环 | 在循环执行结束时判断条件是否符合。 |
Attention: 在Swift语言中数字 0 字符串 ‘0’ 和 “”, 空的 list(), 及未定义的变量都为 false ,其他的则都为 true。true 取反使用 ! 号或 not,取反后返回 false。
2.控制语句
(1)break 语句& continue 语句
用法均于C语言中相同:
(2)fallthrough 语句
fallthrough 语句让 case 之后的语句会按顺序继续运行,且不论条件是否满足都会执行。
在switch语句中Swift中的fallthrough与C语言中的break作用相反:
example:
import Cocoa
var V = 1230
switch V {
case 1201 :
print( "Jin")
case 1230,913 :
print( "butter")
fallthrough
case 907 :
print( "fly")
default :
print( "默认 case")
} //输出结果:butter fly
二、字符串
1.创建
可以通过使用字符串字面量或 String 类的实例来创建一个字符串:
import Cocoa
// 使用字符串字面量
var stringA = "butterfly"
print( stringA )
// String 实例化
var stringB = String("butterfly")
print( stringB ) //以上两个输出结果均是“butterfly”
可以使用空的字符串字面量赋值给变量或初始化一个String类的实例来初始值一个空的字符串:
import Cocoa
// 使用字符串字面量创建空字符串
var stringA = ""
// 实例化 String 类来创建空字符串
let stringB = String()
2.插入&连接
用“\()”以插入常量、变量、字面量和表达式。
用 + 将字符串相连。(具体实例见上篇笔记)
3.比较
可以使用 == 来比较两个字符串是否相等:
import Cocoa
var varA = "save me"
var varB = "I'm fine"
if varA == varB {
print( "\(varA) 与 \(varB) 是相等的" )
} else {
print( "\(varA) 与 \(varB) 是不相等的" ) //输出结果:save me 与 I'm fine 是不相等的
}
4.函数及运算符
函数类型如下:
运算符类型如下:
三、字符(Character)
Swift 中的每一个字符代表一个可拓展的字母集,可拓展的字母集由若干个Unicode标量值表示,这些标量构成了 一个可拓展的字母集。
example:
你可以将字符拼接为字符串:
Attention:字符拼接后将以字符串(即String)形式存在。
1.遍历字符串中的字符
既然字符串是由一个个字符组合而成的,即字符串是字符的集合,那么就可以对字符串进行遍历、查找和打印字符串中的每个字符。
Swift 3 中的 String 需要通过 characters 去调用的属性方法,在 Swift 4 中可以通过 String 对象本身直接调用,演示如下:
在Swift 3中
import Cocoa
for ch in "Butterfly".characters {
print(ch)
}
在Swift 4中
import Cocoa
for ch in "Butterfly" {
print(ch)
}
两个代码运行结果均为
B
u
t
t
e
r
f
l
y
2.字符串连接字符(⚠️前后顺序)
可以使用 String 的 append() 方法来实现字符串连接字符:
import Cocoa
var str = "love"
var bts:Character = "V"
str.append( bts )
print("\(str)") //输出结果:loveV
Attention:Swift 中不能创建空的字符类型变量或常量。
四、数组
1.创建
在Swift 中,数据值在被存储进入某个数组之前,数据的类型必须明确,方法是通过显式的类型标注或类型推断:
let a = Array<someType>() //空数组
let b = [someType]()
let c = [6,1,3] //数组类型将被推断为整型数组
以下是创建一个初始化大小数组的语法:
var someArray = [SomeType](repeating: InitialValue, count: NumbeOfElements)
2.赋值&编辑
可以使用 append() 方法或者赋值运算符 + 在数组末尾添加元素,如下所示,我们初始化一个数组,并向其添加元素:
import Cocoa
var Varray = [Int]()
Varray.append(6)
Varray.append(1)
Varray+=[3]
print("\(Varray[0]),\(Varray[1]),\(Varray[2])") //输出结果:6,1,3
我们也可以直接使用 insert () 方法添加元素,新的元素将被插入数组中指定的index 位置,该位置原来的元素将依次右移:
Varray.insert(7,at:1) //Varray的元素:[6,7,1,3]
如果我们要修改上数组的最后一个元素值,可直接通过索引修改:
import Cocoa
var Varray = [Int]()
Varray.append(6)
Varray.append(9)
Varray.append(1)
Varray+=[3]
Varray[1]=7
print("\(Varray[0]),\(Varray[1]),\(Varray[2])") //输出结果:6,7,1,3
使用这种方式甚至可以一次性修改数组中多个元素的值:
Varray[1..3]=[7,7,7] //Varray的元素:[6,7,7,7]
Swift 数组提供了几种remove 方法,用来删除数组中的元素:
我们可以使用加法操作符 + 来合并两种已存在的相同类型数组。新数组的数据类型会从两个数组的数据类型中推断出来:
import Cocoa
var A = [Int](repeating: 2, count:2)
var B = [Int](repeating: 1, count:3)
var C = A + B
for item in C {
print(item)
}
运行结果为:
2
2
1
1
1
3.访问&查找
数组中元素的访问是通过下标语法实现的:
let Array1 = [b,t,s]
print(Array1[2]) //输出结果为:s
通过使用数组的只读属性count 和isEmpty 可以获取数组中的元素数量:
Array1.isEmpty //判断数组是否为空,结果为:false
Array1.count //获得数组中元素的数量,结果为:3
4.遍历数组
我们可以使用for-in循环来遍历所有数组中的数据项:
import Cocoa
var someStrs = [String]()
someStrs.append("B")
someStrs.append("T")
someStrs += ["S"]
for item in someStrs {
print(item)
}
运行结果为:
B
T
S
SwiftUI
创建新项目并探索画布
打开Xcode,选择create new project后,选择iOS平台,App模板,即可创建Landmarks(自命名)项目。
在左侧项目导航器中选择ContentView:
默认情况下,SwiftUI 视图文件声明了两个结构。第一个结构符合View协议并描述视图的内容和布局。第二个结构声明了该视图的预览。
修改程序可使右侧呈现不同内容: