码迷,mamicode.com
首页 > 编程语言 > 详细

Swift中的可选变量

时间:2014-10-26 21:05:31      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   ar   使用   for   

今天了解到Swift中可选变量,也即:

var  a?  此处的a就是个可选值,意思是该值可能是缺失的.

有值,等于 x,或者没有值。

见这个实例,来自http://www.swiftmi.com/swiftbook_cn/chapter2/01_The_Basics.html 里的可选类型部分

Swift 的String类型有一个叫做toInt的方法,作用是将一个String值转换成一个Int值。然而,并不是所有的字符串都可以转换成一个整数。字符串"123"可以被转换成数字123,但是字符串"hello, world"不行。

下面的例子使用toInt方法来尝试将一个String转换成Int:

let possibleNumber = "123" 
let convertedNumber = possibleNumber.toInt() 
// convertedNumber 被推测为类型 "Int?", 或者类型 "optional Int" 

  

因为toInt方法可能会失败,所以它返回一个可选的(optional)Int,而不是一个Int。一个可选的Int被写作Int?而不是Int。问号暗示包含的值是可选,也就是说可能包含Int值也可能不包含值。(不能包含其他任何值比如Bool值或者String值。只能是Int或者什么都没有。)

 

if 语句以及强制解析

你可以使用if语句来判断一个可选是否包含值。如果可选有值,结果是true;如果没有值,结果是false。

 

当你确定可选包确实含值之后,你可以在可选的名字后面加一个感叹号(!)来获取值。这个惊叹号表示“我知道这个可选有值,请使用它。”这被称为可选值的强制解析(forced unwrapping):

1 if convertedNumber { 
2     println("\(possibleNumber) has an integer value of \(convertedNumber!)") 
3 } else { 
4     println("\(possibleNumber) could not be converted to an integer") 
5 } 
6 // 输出 "123 has an integer value of 123" 

 

注意:使用!来获取一个不存在的可选值会导致运行时错误。使用!来强制解析值之前,一定要确定可选包含一个非nil的值。

Swift中的可选变量

标签:style   blog   http   color   io   os   ar   使用   for   

原文地址:http://www.cnblogs.com/summer2012/p/4052694.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!