1.0简单值的初始化:
Swift声明值可以使用let
来声明常量,使用 var
来声明变量。let声明是不可修改的且只能赋值一次,var声明是可修改的。两者都不需要显式的指定类型,当你通过一个值来声明变量和常量时,编译器会自动推断其类型。
var greeting = "Hello, playground"
//常量
let tall = 180
//变量
var age = 20
age = 23
//字符串
let hobby = "running"
//显式的指定类型
var speed :Float = 4.5
//speed++
//swift3.0已移除这种写法
let append = hobby + "for" + String(speed) + "min/ lap"
运行结果:
1.1数组和字典的创建:
两者的创建都是使用中括号,创建、修改,添加,删除,空对象
//数组
var numList = ["first", "five", "three", "four"]
numList[1] = "second"
//字典
var info = [
"age": "18",
"name": "tony",
]
info["tall"] = "180"
info.removeValue(forKey: "name")
//添加元素
numList.append("five")
print(numList)
//空数组、字典
numList = []
info = [:]
运行效果
如果数组的元素或者字典的值,是有多种类型的话可以指定类型为Any
//数组
var numList : [Any] = ["first", 5, "three", "four"]
numList[1] = 2
//字典
var info : [String: Any] = [
"age": 18,
"name": "tony",
]
info["tall"] = "180"
2.0 控制流:
if控制流 ,if条件必须是一个布尔值,
//if控制流
var score = 90
if score >= 90 {
score += 10
}else {
score -= 10
}
print(score)
运行效果
有时候条件的值有可能是缺失值,这时可以在类型后面加一个问号(?
)来标记这个变量的值是可选的,使用let出来缺失的情况,如下
//有值的时候
var youname :String? = "美女"
//缺失值
//var youname :String?
if let name = youname{
print("有值, \(name)")
}else{
print("没有值")
}
如果变量的可选值是 nil
,条件会判断为 false
,大括号中的代码会被跳过。如果不是 nil
,会将值解包并赋给 let
后面的常量,这样代码块中就可以使用这个值了。
2.1使用 ??
操作符来提供一个默认值
如果可选值缺失的话,可以使用默认值来代替。
let str1 : String? = nil
let str2 : String = "我是替换值"
let str3 = str1 ?? str2
//str1是nil值,??是缺失判断赋值默认值
运行结果
2.2Switch语句:
switch判断语句。case中使用let匹配等式赋值,相比于oc语言,这里的case块中不需要break;
let items = ["apple", "green pepper", "red pepper", "banana"]
for item in items {
switch item {
case let x where x.hasSuffix("pepper"):
print("\(x) is a type of pepper!")
default:
print("\(item) is not a pepper.")
}
}
2.3 for in
for-in
循环用于遍历集合、范围、字符串或自定义对象。以下是一些 for-in
循环的常见使用示例。
示例 1: 遍历数组
let names = ["Alice", "Bob", "Charlie"]
for name in names {
print("Hello, \(name)!")
}
示例 2: 遍历字典
字典的 for-in
循环会返回每个键值对,作为 (key, value)
的元组。
let ages = ["Alice": 25, "Bob": 30, "Charlie": 35]
for (name, age) in ages {
print("\(name) is \(age) years old.")
}
示例 3: 遍历范围
for-in
还可以用于整数范围。
for i in 1...5 {
print(i)
}
示例 4: 遍历字符串的字符
可以逐字符遍历字符串。
let message = "Hello"
for char in message {
print(char)
}
示例 5: 使用 _
忽略循环变量
如果不需要使用循环中的变量,可以用 _
代替:
for _ in 1...3 {
print("Hello!")
}
示例 6: for-in
与 where
条件配合
可以在 for-in
循环中使用 where
来过滤值。
let numbers = [10, 15, 20, 25, 30]
for number in numbers where number > 20 {
print(number)
}
2.4While
示例 1: 基本 while
循环
while
循环会在条件为 true
时反复执行代码。
var count = 1
while count <= 5 {
print("Count is \(count)")
count += 1
}
示例 2: 使用 repeat-while
循环
repeat-while
循环至少会执行一次,因为条件是在执行代码块之后检查的。
var count = 1
repeat {
print("Count is \(count)")
count += 1
} while count <= 5