专栏首页增长技术Swift基础---Optionals

Swift基础---Optionals

描述

  • There is a value, and it equals x
  • There isn’t a value at all

let possibleNumber = "123"
let convertedNumber = possibleNumber.toInt()
// convertedNumber is inferred to be of type
// "Int?", or "optional Int"

!表示确定有值 ?可能有值

if convertedNumber {
  println("\(possibleNumber) has an integer value of \(convertedNumber!)")
}else{
  println("\(possibleNumber) could not be converted to an integer")
}

// prints "123 has an integer value of 123"

Optional Binding

// 模板
if let constantName = someOptional {
  statements
}

if let actualNumber = possibleNumber.toInt() {

  // 如果possibleNumber.toInt()返回可选值Int类型的值  
  println("\(possibleNumber) has an integer value of \(actualNumber)")

}else{

  // 否则
  println("\(possibleNumber) could not be converted to an integer")

}

// prints "123 has an integer value of 123"

nil

可以设置可选值变量为一个特殊值nil

var serverResponseCode: Int? = 404
// serverResponseCode 包含一个Int值404

serverResponseCode = nil
// serverResponseCode现在没有值

var surveyAnswer: String?
// surveyAnswer自动被设置为nil

Implicitly Unwrapped Optionals

let possibleString: String? = "An optional string."
println(possibleString!)
// !要求这个值可以获取到

// prints "An optional string."

let assumedString: String! = "An implicitly unwrapped optional string."
println(assumedString)
// 没有!说明这个值不是必须要获取到的

// prints "An implicitly unwrapped optional string."

if assumedString {
  println(assumedString)
}

// prints "An implicitly unwrapped optional string."

if let definiteString = assumedString {
  println(definitString)
}

// prints "An implicitly unwrapped optional string."

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ProgressBar

    自定义view实现下载进度的展示 控件完全自定义,字体大小,圆环宽度,实心或者空心,圆环的宽度,圆环的颜色,进度字体的粗细,字体颜色等等都可以自定义

    用户3004328
  • Swift体验2

    使用if和switch做条件判断,使用for-in,for,while,do-while做循环 操作。括号中的条件或循环变量是可选的。括号的身体是必需的。

    用户3004328
  • Swift基础---常量、变量

    用户3004328
  • 一次数据库的整理的sql语句

    //查询以井结束的记录 SELECT f_wellnumber, SUBSTRING(f_wellnumber, 1, LEN(f_wellnumber) - ...

    用户1075292
  • 设计师一小步,程序员一大步

    首先,从产品人员这里,如果一开始就不信任开发人员,总想把东西往简单了说,或者排上了时间又插需求,那么开发人员也会产生相应的不信任:反正你是要插需求的,不多估算点...

    姬小光
  • 成为Java顶尖程序员,看这11本书就够了

    学习的最好途径就是看书“,这是我自己学习并且小有了一定的积累之后的第一体会。个人认为看书有两点好处:

    IT派
  • WordPress IP验证不当漏洞修复

    修复方案:找到/wp-includes/http.php这个文件,在文件的465行附近找到:

    张维龙
  • 火绒安全周报:Valve发生重大源码泄露事件 OpenSSL发布高危漏洞

    Valve(Steam母公司)被曝发生重大源码泄露事件,旗下热门游戏《CS:GO》和《军团要塞2》源码被人泄露。源码泄露后,相当于将游戏的运行机制完全曝光在黑客...

    用户6477171
  • 成为Java顶尖程序员 ,看这11本书就够了

    "学习的最好途径就是看书",这是我自己学习并且小有了一定的积累之后的第一体会。个人认为看书有两点好处:

    Java团长
  • vue面试题总结(二)

    “ 关注 前端开发社区 ,回复"1"即可加入 前端技术交流群,回复 "2"即可免费领取 500G前端干货!

    前端老道

扫码关注云+社区

领取腾讯云代金券