跳转到主要内容

Swift基础语法

1.变量与常量(var 和 let)

var str = "Hello, playground"
str += "!"
print(str)

2.数据类型:Int、Double、String、Bool

声明变量用关键字var,而声明常量用关键字let(常量无法变化)。

var myx: Int = 4
myx += 2
print(myx)

数据类型转换:

let a:Int8 = 50
let b:Int16 = 200;
let c = Int16(a) + b

注意: 浮点数无法精确表示,计算机是存储一个近似值。因此,永远不要用浮点数表示那些需要非常精确的数值(比如金额计算)

3.字符串插值与操作(值绑定法)

字符串字面量中的()语法表示占位符,可以访问一个实例的值并将其放入新字符串

let numberOfStoplights: Int = 4
var population: Int
population = 5422
let townName: String = "Knowhere"
let townDescription: String = "\(townName) has a population of \(population) and \(numberOfStoplights) stoplights."
print(townDescription)

4.条件语句:if、else、switch

var msg: String
if population < 5{
    msg = "big"
}
else if population == 5{
    msg = "normal"
}
else{
    msg = "small"
}

比较运算符:

  • < 计算左边的值是否小于右边的值
  • <= 计算左边的值是否小于等于右边的值
  • > 计算左边的值是否大于右边的值
  • >= 计算左边的值是否大于等于右边的值
  • == 计算左边的值是否等于右边的值
  • != 计算左边的值是否不等于右边的值
  • === 计算两个实例是否指向同一个引用
  • !== 计算两个实例是否不指向同一个引用

逻辑运算符:

  • && 逻辑与:当且仅当两者都为真时结果为真(否则结果为假)
  • || 逻辑或:两者任意之一为真时结果为真(只有两者都为假时结果为假)
  • ! 逻辑非:真变为假,假变为真

三目运算:

msg = population < 10000 ? "population = \(population). It is a small town" : "population = \(population). It is a big town"

5.元组、数组和字典

创建元组

let person = (name: "John", age: 30, profession: "Engineer")
print(person)

通过索引访问元组元素

var name = person.0   // "John"
var age = person.1    // 30
var profession = person.2  // "Engineer"

通过标签访问

name = person.name       // "John"
age = person.age         // 30
profession = person.profession  // "Engineer"

元组是不可变的(immutable)除非你显式声明为 var。如果元组是 var,你可以修改其中的元素。

var person2 = (name: "John", age: 30, profession: "Engineer")
person2.age = 31  // 修改 age 为 31

数组

var numbers = [1, 2, 3, 4, 5] //隐式创建数组
var goods: [String] = ["apple", "banana", "cherry"] //显式创建数组
let firstNumber = numbers[0]  //通过索引访问元素
numbers[0] = 10  // 修改第一个元素
let count = numbers.count  // 5
numbers.append(6)  // 添加元素到数组末尾
numbers.remove(at: 2)  // 删除索引为 2 的元素
for number in numbers {//遍历数组
    print(number)
}

字典

var person3 = ["name": "John", "age": "30"] //隐式创建字典
var employee: [String: String] = ["name": "Alice", "position": "Engineer"] //显式创建字典
var name3 = person3["name"]  // 通过键访问字典中的值
person3["age"] = "31"  // 修改 "age" 键的值
print(person3)
person3.removeValue(forKey: "age")  // 删除 "age" 键值对
print(person3)
person3["address"] = "123 Main St"  // 添加 "address" 键
print(person3)

for (idex,itemx) in person3{// 遍历字典
    print(idex,itemx)
}