Swift - 09 - Optionals

时间:2022-11-21 04:42:04
//: Playground - noun: a place where people can play

import UIKit

// swift中没有被赋值的变量是不能被使用的
//var str : String
//str // Optionals 可选值 (用?号体现)
// 或者是一个值, 或者是没有值(没有值时为nil) var a : Int?
a
a = var imOptionalVariable : String?
imOptionalVariable = "我是可选值" // 例如, 在要求用户输入年龄的时候, 用户却输入了abc
// 后台转换为年龄的时候, 可选值就有了很大的作用, 一旦转换不了就会返回nil
let userInput = ""
var age : Int? = Int(userInput) if age != nil {
// 感叹号是告知编译器开发者确定可选值里面是有值的(也叫做解包)
print("your age is \(age!)")
print("your age is \(age)")
} else {
print("输入无效")
} // 强制类型转换不能针对一个可选值进行转换
// println("your age is " + String(age))
// 更正后:
print("your age is " + String(age!)) // 可选值自动解包
// 可选绑定:可以用在if和while语句中来对可选类型的值进行判断并把值赋给一个常量或者变量
if let userAge = Int(userInput) {
// 这里不需要加感叹号
print("your age is \(userAge)")
} var rinpe : Int?
rinpe =
if let bobo = rinpe {
print("\(rinpe) \(bobo)")
}