Swift - 09 - Optionals

//: 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)")
}

 

posted @ 2015-12-16 11:32  Rinpe  阅读(182)  评论(0编辑  收藏  举报