本文章内容来源于:Swift语言入门 - 网易云课堂。手打,有修改。推荐初学Swift语言的朋友学习。
// 枚举类型
enum Direction {
case east
case west
case south
case north
}
enum AppleOs {
case iOS, macOS, watchOS, tvOS
}
// .语法
var walk = Direction.north
walk = .east // 省略Direction
// 使用switch语句来匹配枚举值
switch walk {
case .east:
print("正在往东走")
case .west:
print("正在往西走")
case .south:
print("正在往南走")
case .north:
print("正在往北走")
}
var direction = Direction.east
switch direction {
case .east:
print("正在往东走")
default:
print("没有往东走")
}
// 类和结构体。构造体,通过定义属性和方法,扩展功能。
struct Resolution {
var width = 0 // 属性
var height = 0
}
class Player {
var name = ""
var HP = 100 // 血量
var ATK = 30 // 攻击力
}
// 类和结构体的实例
var resolution = Resolution()
var player1 = Player()
var player2 = Player()
// 属性的访问和修改
resolution.width = 1920
resolution.height = 1080
player1.name = "玩家1"
player2.name = "玩家2"
player1.HP -= player2.ATK
print("\(player1.name) 受到 \(player2.name)攻击,血量剩余 \(player1.HP)")
// 结构体的成员逐一构造函数
var vga = Resolution(width: 640, height: 480)
// 结构体是值类型
var hd = Resolution(width: 1920, height: 1080)
var cinema = hd
cinema.width = 2048
print("cinema现在的分辨率宽是\(cinema.width)")
print("hd的分辨率宽仍然是\(hd.width)")
// 类是引用类型
var player = Player()
player.name = "玩家"
player.HP = 200
player.ATK = 50
var shadow = player
shadow.HP -= 30
print("shadow现在的血量为\(shadow.HP)")
print("player现在的血量也为\(player.HP)")
// 类的继承
// 基类
class Vehicle {
var currentSpeed = 0.0
func makeNoise() {
// 什么也不做,交通工具不一定会有噪音
}
}
// 子类的声明
class Bicycle: Vehicle {
var hasBasket = false
}
let bicycle = Bicycle()
bicycle.hasBasket = true
bicycle.currentSpeed = 15
// 子类还可以被其他类继承
// tandem 双人自行车
class Tandem: Bicycle {
var currentNumberOfPassengers = 0
}
let tandem = Tandem()
tandem.hasBasket = true
tandem.currentNumberOfPassengers = 2
tandem.currentSpeed = 22
// 类的重写
class Train: Vehicle {
override func makeNoise() {
print("🚄火车的声音")
}
}
class Plane: Vehicle {
override func makeNoise() {
print("✈飞机的声音")
}
}
let train = Train()
train.makeNoise()
let plane = Plane()
plane.makeNoise()
// 构造函数(构造器),实现实例的初始化
class Box {
var length: Double
var width: Double
var height: Double
init(length: Double, width: Double, height: Double) {
self.length = length
self.width = width
self.height = height
}
// 立方体
init(cube sideLength: Double) {
length = sideLength
width = sideLength
height = sideLength
}
}
let box = Box(length: 3, width: 2, height: 4)
let cube = Box(cube: 6)