SWIFT中有一个类型定义叫可选值,在变量类型后面加一个?号即可定义一个类型为Optional Value的变量,当在使用变量时要用到强制解包!.

如在页面上有一个可选输入年龄的框,在接受数据的时间就可能要定义一个可选值的变量.

var age:Int? = 10

var str:String = "Age is "+String(age!)

以下为从一个数组中取数据,然后判断是否存在值

var numberOfLegs = ["ant":6, "snake":0, "dog":4]

var possibleLegCount:Int? = numberOfLegs["fish"] //没有找到相应的键值将会返回nil

判断possibleLegCount是否是nil

if possibleLegCount == nil{

println("not found")

}else{

var legCount = possibleLegCount! //强制解包

println("fish's legs is \(legCount)")

println("fish's legs is \(possibleLegCount)")  //用这种占位方式会自动解包

}

此时的possibleLegCount一定要是Optional Value类型,否则会报错.此时程序将会验证可选值是否可以正常解包,正常的话将会把值解包后赋值给legCount变量

if let legCount = possibleLegCount {

println("fish's legs is \(legCount)")

}

另外SWIFT中的可能值类型其实是一个Enumeration,如下代码将会打印"My name is Ken",如果将myName的值去掉将会打印"I don't have name"

var myName:String? = "Ken"

switch myName{

case .Some(let name):

println("My name is \(name)")

case nil:

println("I don't have name ")

default:

println("default")

}

最新文章

  1. iBatis.net 循环iterate,没有foreach
  2. 《深入浅出WPF》笔记三
  3. (08)odoo继承机制
  4. Linux档案与目录的管理
  5. 转载:奇异值分解(SVD) --- 线性变换几何意义(下)
  6. DIV+CSS规范命名大全集合
  7. 转载--C++ STL
  8. JS 打字机效果
  9. subplot的几个详细说明
  10. jQuery EasyUI API 中文文档 - 菜单按钮(menubutton)
  11. 用户空间网络提升 NFV 的性能
  12. jackson json转对象 json转集合 对大小写支持
  13. Python内置函数(59)——sorted
  14. Android开发——Notification通知的各种Style详解
  15. C“控制”Lua
  16. bootstrap-editable实现bootstrap-table行内编辑
  17. VS2017上使用RDLC Report
  18. SQL 优化经历
  19. sqlplus中设定行大小、页大小、字符列格式、数字列格式、清屏
  20. 嵌入式开发之hi3519---GPIO 按键驱动

热门文章

  1. C#类头部声明样式
  2. GBDT 简述
  3. Qt数据库_资料
  4. (转)netty、mina性能对比分析
  5. Codeforces 827C - DNA Evolution
  6. AMD,CMD.CommonJs和UMD还有es6的模块化对比
  7. Java 常用对象-StringBuffer类
  8. SqlServer和Oracle判断表和列是否存在
  9. PHP消息队列之Beanstalk
  10. centos7: vsftpd安装及启动