Swift基础学习归纳笔记第二波
1.循环
①for-in 循环
语法如下
for index in var {
循环体
}
范例:
for index in 1...5 {
print("\(index)" 乘以10为: \(index * 10)")
}
输出:
1 乘以10为 10
2 乘以10为 20
3 乘以10为 30
4 乘以10为 40
5 乘以10为 50
②注意
在C语言中常用的for循环方式在Swift 3中已经弃用
如下
for var index = 0; index < 3; ++index {
print( "索引 [\(index)] 对应的值为 \(someInts[index])")
}
因此不需要了解这种方式,同时也不要在最新的Swift中使用该for循环方式
③while 循环
语法如下
while condition
{
statement(s)
}
实例:
while index < 20
{
print( "index 的值为 \(index)")
index = index + 1
}
④repeat...while 循环
语法如下
repeat
{
statement(s);
}while( condition );
个人感觉和C语言中的do-while
类似
实例:
repeat{
print( "index 的值为 \(index)")
index = index + 1
}while index < 20
2.字符串
实例化字符串,可以有两种方法
1.字符串字面量
var stringA = "Hello, World!"
2.String实例化
var stringB = String("Hello, World!")
判断字符串是否为空
可以通过属性isEmpty
来判断
if stringA.isEmpty {
print( "stringA 是空的" )
} else {
print( "stringA 不是空的" )
}
字符串连接
字符串连接可以用字符串1 + 字符串2
来实现
字符串3 = 字符串1 + 字符串2
字符串长度
可以用count
属性来获取
var varA = "www"
print( "\(varA), 长度为 \(varA.count)" )
输出结果:
www, 长度为 3
字符串比较
可以用==
来比较
字符串1 == 字符串2
如下例子
if varA == varB {
print( "\(varA) 与 \(varB) 是相等的" )
} else {
print( "\(varA) 与 \(varB) 是不相等的" )
}
更多细节请戳这:菜鸟教程字符串
3.字符
循环遍历字符串中的字符
for ch in "ABCDEFG".characters {
print(ch)
}
输出:
A
B
C
D
E
F
G
字符串连接字符
可以使用append
方法
var varA:String = "Hello "
let varB:Character = "G"
varA.append( varB )
输出为
Hello G
4.数组
- Swift数组使用有序列表存储同一类型的多个值
- Swift数组会强制检测元素的类型,如果类型不同会报错
- 变量型数组可修改,常量型数组不可修改
创建一个特定数据类型构成的空数组
var someArray:[SomeType] = []
可以通过对参数的设置对数组进行配置
example1:创建一个类型为,Int,大小为10,初始值为1的数组
var someInts = [Int](repeating: 1, count: 10)
example2:将数组初始化为特定的内容
var someInts:[Int] = [1,2,3]
修改数组
可以通过append方法
或者+=
来添加元素到数组末尾
intArray.append(20) //方式1,向数组末尾添加20
intArray += [50] //方式2,向数组末尾添加50
遍历数组
使用for-in
循环来遍历所有数组中的数据项
实例:
for item in someStrs {
print(item)
}
倘若需要顺便输出数组的index
可以使用enumerated方法
来完成
for (index, item) in someStrs.enumerated() {
print("在 index = \(index) 位置上的值为 \(item)")
}
合并数组
合并数组只能合并类型相同数组
可以使用+
来合并
数组1 = 数组2 + 数组3
例子:
var intsA = [Int](repeating: 2, count:2)
var intsB = [Int](repeating: 1, count:3)
var intsC = intsA + intsB
数组长度
可以通过count
属性来获取
testArray.count
判断数组是否为空
可以通过只读属性isEmpty
来判断
testArray.isEmpty
5.字典
创建字典
var someDict = [KeyType: ValueType]()
范例:
创建一个空字典
var someDict = [Int: String]()
创建一个带有实例内容的字典
var busDict:[Int:String] = [504:"北京公交", 520:"武汉公交, 3:"泉州公交"]
访问字典
用过python的人都知道字典的用法,Swift字典的访问是类似的
var someVar = someDict[key]
这里也不多阐述,举个例子
var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
print( "key = 2 的值为 \(someDict[2])" )
print( "key = 3 的值为 \(someDict[3])" )
输出内容为:
key = 2 的值为 Optional("Two")
key = 3 的值为 Optional("Three")
修改字典
方法 updateValue(forKey:)
增加或更新字典的内容
例子:
var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
var oldVal = someDict.updateValue("新值", forKey: 1)
var someVar = someDict[1]
print( "key = 1 旧的值 \(oldVal)" )
print( "key = 1 的值为 \(someVar)" )
输出结果:
key = 1 旧的值 Optional("One")
key = 1 的值为 Optional("新值")
上述方法太死板了,本人更喜欢下面这种简单粗暴的方法
someDict[1] = "One 新的值"
移除字典中的内容
var removedValue = someDict.removeValue(forKey: 2)
移除后再对该位置进行访问,会提示值为nil
或者直接将指定位置的值置为nil
someDict[2] = nil
遍历字典
同样使用for-in
语句来遍历某个字典中的键值对
for (key, value) in someDict {
print("字典 key \(key) - 字典 value \(value)")
}
将字典转换为数组
可以将字典中的键值分别转化为数组
范例:
var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
let dictKeys = [Int](someDict.keys)
let dictValues = [String](someDict.values)
当然类型要根据字典内容键值的内容来确定
字典键值数
使用count
属性来获取
someDict.count
判断字典是否为空
使用isEmpty
属性
someDict3.isEmpty
Q.E.D.
Comments | 0 条评论