注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

罔少年

QQ 332256483

 
 
 

日志

 
 

Swift 可选值 ?  

2015-08-29 13:31:58|  分类: swift |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

//下面的?和!到底干嘛用的,干嘛不像java一样去掉

var number: Int?

var number: Int? = 1
var window: UIWindow?
self.window!.backgroundColor =  UIColor.whiteColor()


首先了解一个概念
Swift在申明一个变量或常量的时候,必须赋值,否则会报错
举个例子,初始化一个变量

//java代码

int num; //默认num=0


//swift

var number: Int //编译报错,因为没有赋值,swift不会默认给基本数据类型赋值

上面两个例子,我想设置一个int的变量,我想在后面代码中赋值,所以先不赋值,java中没问题,但在swift中就违反了“申明一个变量或常量的时候,必须赋值”的原则,所以这样不行
那么swift如何解决这个冲突,这个时候 可选类型(Optional)就诞生了。

var num: Int? = 10 //num要么存在等于10,要么不存在等于nil

let strVal = "123" //strVal = "hello world"


let number = strVal.toInt() //报错,如果strVal = "hello world"

let number: Int? = strVal.toInt() //正确,如果strVal = "hello world",那么number = nil


var strVal = nil //报错,nil不能用于非可选类型


  评论这张
 
阅读(74)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018