验证中...
7.21 杭州源创会火热报名中,一起来看看移动开发如何紧跟浪潮?
语言: Swift
分类: 编程语言基础
最后更新于 2018-07-13 20:33
gistfile1.txt
原始数据 复制代码
1.定义常量: let; 定义变量: var
2.var n: Int = 3; xcode有类型推断, : Int可以不写,swift中分号(;)可以不写 例如: 上面表达式可以写成 var n = 3
3.swift中默认的浮点型是Double(双精度),双精度用8个字节存储
4.元组Tuple: 定义变量的一个组合,下面三种方式都可以
- var n = (1, "明天", "2.54", "π", "...") 要取出元组中的值,用索引即可,如 n.0 注意: 这里没有括号,不是n.(0)
- var (x, y, z) = (1, "你好", "π")
- var n = (x: 1, y: "你好", z: "π")
5.可选类型Optional: 代表变量中可能有值的情况
- var n: String? 默认值是nil,这里问号(?)不能少,少了就变成定义一个String类型,而不是定义一个可选类型了
6.操作符
- 一元操作符: 负号,如 -6
- 二元操作符: 一次操作两个对象,如加减乘除 + - * / 3 + 4
- 赋值操作符: =
- 数学操作符: + - * / %
- 组合赋值: += -= *= /=
- 比较操作符: > < >= <= ==
- 逻辑操作符: && || !
7.字符型: Character 字符串型: StringString
var n1: Character = "a" var n2: String = "aaaaa"
8.访问字符串中的每一个字符
可以使用for inin 循环:
for x in n2 {
print(x)
}
9.连字符 + 只能将String互相连接,String和Character之间不能连接,想要连接用append
10.字符串添加字符: append
var str1 = "abc"
var str2 = "d"
str1.append("d") 或者 str1.append(str2)
11.字符串中的插入操作: \()
var n = 20
print("您一共消费了\(n)元")
12.数据容器
- Tuple 元组 var n1 = (1, "你好", π)
- Array 数组 var n2 = [1, 2, 3]
- Set 集合 var n3: Set = [1, 2, 3]
- Dictionary 字典 var n3: Dictionary = ["a": 1, "b": 2, "c": 3]
有序有index: Array, Tuple 无序无index: Set, Dictionary 字典(Dictionary)虽然没有indexindex,但是它有key和valuevalue,它是以键值对来存储数据
存储类型相同: Array, Set 存储类型可以不同: Tuple Dictionary
创建空容器: 因为创建空容器,编辑器就不能推断类型,所以必须指定数据类型是Sting/Int...等等
创建空数组或者空集合,用 var n: Array<Int> = [] / var n: Set<Int> = []
也可以用Array方法或者Set方法 var n = Array<Int>() / var n = Set<Int>()
13.Array的操作
var str1 = ["北京", "上海", "广州"]
- 计数: count
str1.count
- 判断是否为空: isEmpty
str1.isEmpty
- 插入: insert
str1.insert("南京", at: index)
- 连接: +=
var str2 = ["武汉", "长沙"]
str1 += sts2
- 删除: remove
str1.remove(at: index)
删除所有: str1.removeAll() 返回空数组[], set删除所有返回空集合 Set([])
- 获取元素: 数组名[index], 元组获取元素的方式: 元组名.index
14.Set的操作
var set1: Set = ["北京", "上海", "广州"]
- 计数: count
set1.count
- 判断是否为空: isEmpty
set1.isEmpty
- 删除所有: removeAll()
set1.removeAll() 因为Set无序,所以没有index,数组里面跟index相关的操作,在Set里面都做不了
- 包含: contains()
set1.contains("5") 判断set1中是否包含 "5"
- 转化成数组: sorted()
set1.sorted()
set不能 +=
15.字符串 Tuple Array Set 用法举例
var str1 = "abc"
var str2 = "def"
str1.count
str1.isEmpty
str1 += str2
--------------------------------------------------------
var tuple1 = (1, "你好")
var tuple2 = (2, 3, "π")
tuple1.0
--------------------------------------------------------
var array1 = ["1","2", "你好"]
var array2 = ["1", "2", "你好", "π", "ok"]
var arrayEmpty = Array<Int>()
array1[0]
array1.count
array1.isEmpty
array1 += array2
array1.remove(at: 0)
array1.removeAll()
--------------------------------------------------------
var set1: Set = ["1", "2", "3"]
var set2: Set = ["4", "5", "6"]
var setEmpty = Set<Int>()
set1.count
set1.isEmpty
set1.insert("5"), 这里是直接插入值,不能指定位置
set1.removeAll()
set1.contains("5")
--------------------------------------------------------
16.Set之间的运算, 运算 返回Set类型, 只有set之间才有交,差,并,补运算, Array数组没有
- 交集: intersection
a.intersection(b)
- 差集: subtract
a.subtract(b) 保留a集合中不同于b的部分,差集会修改原集合a
- 并集: union
a.subtract(b) a,b集合的总和
- 补集: symmetricDiffrence
a.symmetricDifferencece(b) 去除交集以外的部分
17.Set之间的关系: 关系 返回布尔类型不是返回集合类型
子集: isSubset (含相等)
set1.isSubset(of: set2) set1 是否是 set2 的子集 前者是否是后者的子集,记住这里用的是of
严格子集: isStricSubset (不含相等)
set1.isStrictSubset(of: set2)
父集: isSuperset (含相等), 用法同上
严格父集: isStricSubset (不含相等), 用法同上
相等: ==
set1 == set2
无交集: isDisJoint
set1.isDisJoint(with: set2)
18.字典: Dictionary 无序可重复,存储的是键值对
创建空字典: var dic1: Dictionary<String,String> = [:]
字典同样有isEmpty 和 count方法
字典添加元素: dic1[key] = 值
将字典中key和value单独取出成一个数组: 不一定用[String],也可用[Int],用Srting还是Int活着其它,根据键值对相应的类型来写
var dicKey = [String](dic1.keys) //这里的keys中的s不能少
var dicValue = [String](dic1.values) //这里的values中的s不能少
19.判断变量的数据类型
var a = type(of: 3)
print(a)
20.控制流: 其实也就是循环
for _ in: 知道循环次数
计算1加到100的值:
var sum = 0
for i in 1...100 {
sum += i
}
print(sum)
--------------
单纯的循环100次:
for _ in 100 {
print("hello")
}
while: 不知道循环次数

评论列表( 0 )

你可以在登录后,发表评论