运算符
运算符是数学符号加减乘除以及赋值号(+ - * / =)
let a = 2
a + 2
a - 2
a * 2
a / 2
a % 2
a += 2
a -= 2
a *= 2
a /= 2
逻辑运算符
比较运算符只能返回布尔值,比较两个数是否相同,需要使用等于号(==),可以使用!=符号来表示“不等于”
a = 8
a == 2 // false
a != 2 // ture
a > 2
a >= 2
a < 2
a <= 2
&& 且 相当于and
|| 或 相当于or
! 逻辑非
a = 6
if a > 5 && a < 10 {
print(1)
}else if a < 1 || a > 11 {
print(2)
}else {
print(3)
}
空值
nil
var m : Int? = nil
print(m ?? -1) // 如果m的值是nil 等于给m一个默认值 -1
m = 2
print(m!) // 强制解包 告诉编译器m不为空,一定有值,如果值为nil,程序会报错
if let a = m {
print("m不为空\(a)")
}else{
print("m为空值")
}
三目运算符
问题?答案1:答案2
a = 6
a > 2 ? "yes":"no" //如果a>2为true 结果就是yes
数组
数组是一堆值的合集,可以按照在集合内的位置访问每个值。
var nums: [Any] = [1,2,3,"a",[1]] // 推断 [Int]
nums[0]
nums[1]
nums[2]
可以使用代码查看任意变量的数据类型:
var songs = ["园游会","晴天","爱在西元前"]
type(of:nums)
结果会显示Array<String>.type,表示songs是一个字符串数组
创建数组
如果希望数组内可以存放各种类型的数据,使用Any数据类型即可:
var nums: [Any] = [1,2,3,"a",[1]] // 推断 [Int]
使用类型注释明确想要创建一个Int类型数组,并且创建一个空的数组:
var nums1 = [Int]()
var nums2: [Int] = [1]
var nums3: [[Int]] = [[1,2],[2,3,4],[2]]
let ncount = nums3.count
nums.append("small") //在数组后边加上一个字符串
nums.insert("a",at: 3) //在这个数组的第四个位置添加"a"
nums.remove(at: 2) //移除第三个元素
for (index,item) in nums.enumerated() { // 循环nums的下标和元素
print(index,item)
}