Files
SwiftStudy/06 可选项.playground/Contents.swift
2021-12-14 09:36:26 +08:00

185 lines
4.0 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import UIKit
var greeting = "Hello, playground"
//: [Previous](@previous)
import Foundation
//: ####
/*:
: nil
- nil
- ?
*/
//
var name: String? = "Zhang Mengxu"
name = nil
// nil
var age: Int?
age = 10
print(age)
age = nil
//: ####
/*:
- nil
- nil
使
nil
- nil
- Optional Binding
*/
//
var age0: Int? = 10
var ageInt: Int = age0!
ageInt += 20
//
let number = Int("123")
if number != nil {
print("字符串转换成功,\(number!)")
} else {
print("字符串转换失败")
}
// Optional Binding
/*:
使
(let)(var)truefalse
*/
if let number = Int( "123") {
print("字符串转换整数成功:\(number) ")
// numberInt
// number
}else {
print("字符串转换整数失败")
}
enum Season: Int {
case spring = 1, summer, autumn, winter
}
if let s = Season(rawValue: 3) {
switch s {
case .spring:
print("The season is spring")
default:
print("The season is other")
}
} else {
print("no such season")
}
// ,
// firstsecondfirst < second && second < 100
if let first = Int("4"), let second = Int("42"), first < second && second < 100 {
print("-------------------")
}
// where使
var strs = ["10", "20", "abc", "-20"]
var index = 0
var sum = 0
while let num = Int(strs[index]), num > 0 {
sum += num
index += 1
}
print(sum)
// 🈳
/*:
??
a ?? b
- a
- b
- ba
a ?? b
- anila
- anilb
- ba
*/
let a: Int? = 1
let b: Int? = 2
let c = a ?? b // cInt? Optional(1)
let a: Int? = nil
let b: Int? = 2
let c = a ?? b // cInt Optional(2)
let a: Int? = 1
let b: Int = 2
let c = a ?? b // cInt, 2
// ?? if使
let a: Int? = nil
let b: Int? = 2
if let c = a ?? b {
print(c)
}
//: #### guard
/*:
guard else {
// do something
退
// returnbreakthrow
}
- guardfalse
- guardtrueguard
guard退
*/
//
guard let username = info ["username"] else {
print("请输入用户名")
return
}
//
// !
let num1: Int! = 10
let num2: Int = num1
//
var num3: Int? = 20
// 1.
print("num3 is \(num3!)")
// 2. String(describing: num3)
print("num3 is \(String(describing: num3))")
// 3. ??
print("num3 is \(num3 ?? 0)")
//:
/*:
lldb frame variable -R fr v -R
playground
*/
var num1: Int? = 10
var num2: Int?? = num1
var num3: Int?? = 10
print(num2 == num3)
//: [Next](@next)