ios 知识点IOS知识积累

Swift5.0详解(基础篇二)

2019-07-15  本文已影响7人  浅宇落

可选类型(Optionals)

var optiontion: String? = "可选类型 Swift" // 创建可选类型
print(optiontion) // 结果: Optional("可选类型 Swift")
let optiontionStr = optiontion! // 强制解包(如果optiontion为 nil, 会导致崩溃)  结果: 可选类型 Swift

// 可选绑定(if let)
if let optiontionStr = optiontion {
    print(optiontionStr)
}else {
  print("optiontion为 nil")
} // 结果: 可选类型 Swift
let optiontionStr = optiontion ?? "值" // 如果optiontion为 nil 则会取用 ?? 后面的值   结果: 可选类型 Swift

函数(Function)

// 无参数, 无返回值
func sayHi() { 
    print("你好, sayHi")
}
sayHi() // 结果: 你好, sayHi

// 无参数, 有返回值
func sayHi() -> String { 
    return "你好, Swift"
}
let str = sayHi()
print(str) // 结果: 你好, Swift

// 有参数, 无返回值
func sayHi(number: String) { 
    print("你好, sayHi\(number)")
}
sayHi(number: "**15") // 结果: 你好, sayHi**15

 // 有参数, 有返回值
func sayHi(number: String) -> String {
    return number
}
let str = sayHi(number: "有参数, 有返回值")
print(str) // 结果: 有参数, 有返回值

// 参数默认值
func sayHi(number: String = "你好, LZY") { 
    print(number)
}
sayHi(number: "LZY") // 结果: LZY
sayHi() // 结果: 你好, LZY

类(Class)

恒等运算符
// 创建Person类
class Person {
    var sex: Int
    var crad: String

    init() {
        self.sex = 1
        self.crad = "身份证号"
    }

    convenience init(sex: Int, crad: String) {
        self.init()
        self.sex = sex
        self.crad = crad
    }
    
    func sayHi() {
        print("性别 : \(sex), 身份证: \(crad)")
    }

// 实例化对象 p1
let p1 = Person()
p1.sex = 2 // 为sex赋值
p1.crad = "783131" // 为crad赋值
p1.sayHi() // 结果: 性别 : 2, 身份证: 783131
print(p1.sex, p1.crad) // 结果: 2 783131

// 实例化对象 p
let p = Person(sex: 12, crad: "56563232323")
p.sayHi() // 结果: 性别 : 12, 身份证: 123456
print(p.sex, p.crad) // 结果: 12 56563232323

// 继承
class PersonSub: Person {
    var height: Float = 180.0
    
    // 重写 sayHi 方法
    override func sayHi() {
        print("性别 : \(sex), 身份证: \(crad), 身高: \(height)")
    }
  personSub.sayHi() // 结果: 性别 : 1, 身份证: 身份证号, 身高: 180.0
  print(personSub.sex, personSub.crad, personSub.height) // 结果: 1 身份证号 180.0
}

结构体(Struct)

struct StudentMarks {
    var mark1 = 100
    var mark2 = 78
    var mark3 = 98
}
// 创建方式1
let marks = StudentMarks()
print("Mark1 是 \(marks.mark1)") // 结果: Mark1 是 100
print("Mark2 是 \(marks.mark2)") // 结果: Mark2 是 78
print("Mark3 是 \(marks.mark3)") // 结果: Mark3 是 98

// 创建方式2
let mark = StudentMarks(mark1: 100, mark2: 78, mark3: 98)
print("Mark1 是 \(marks.mark1)") // 结果: mark 是 100
print("Mark2 是 \(marks.mark2)") // 结果: mark 是 78
print("Mark3 是 \(marks.mark3)") // 结果: mark 是 98

// 结构体克隆
struct MarksStruct {
    var mark: Int
}
var aStruct = MarksStruct(mark: 98)
var bStruct = aStruct // aStruct 和 bStruct 是使用相同值的结构体!
bStruct.mark = 97
print(aStruct.mark) // 结果: 98
print(bStruct.mark) // 结果: 97
上一篇 下一篇

猜你喜欢

热点阅读