//: Playground - noun: a place where people can play import UIKit // swift中没有被赋值的变量是不能被使用的 //var str : String //str // Optionals 可选值 (用?号体现) // 或者是一个值, 或者是没有值(没有值时为nil) var a : Int? a a = 1 var imOptionalVariable : String? imOptionalVariable = "我是可选值" // 例如, 在要求用户输入年龄的时候, 用户却输入了abc // 后台转换为年龄的时候, 可选值就有了很大的作用, 一旦转换不了就会返回nil let userInput = "18" 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 = 18 if let bobo = rinpe { print("(rinpe) (bobo)") }