Swift可选类型和可选链

一、可选类型

有时候在Swift程序的表达式可以看到?和!等符号,它们代表的含义是什么,这些符号都和可选类型有关。

有时候使用一个变量和常量,它保存的值可能有也可能没有

1、比较给一个变量赋值nil,需要下面的表达式赋值

class Empoyee{

var  int : = 0

var name:String = ""

var job : String =""

}

var emp : Employee? = nil //后面加上?号可以接受空值,不加?不能赋予空值

emp1=Employee()

println(emp!.no)

2、引用代码

emp1?.no=1000

emp1?.name="张三"

emp1?.job="clerk"

3、再看示例

func divided(n1:Int,n2:Int)->Double?{

if n2==0{

return nil

}

Double(n1)/Double(n2)

}

let result : Double? = divide(100,200)

时间: 2024-10-05 07:54:11

Swift可选类型和可选链的相关文章

[Swift]学习笔记-可选类型/可选链

可选类型/可选链                        Make-by-LJW ---转载请注明出处... 它的可选性体现于请求或调用的目标当前可能为空(nil) 如果可选的目标有值,那么调用就会成功: 如果选择的目标为空(nil),则这种调用将返回空(nil) 多次调用被链接在一起形成一个链,如果任何一个节点为空(nil)将导致整个链失效. 因为可选链的结果可能为nil,可能有值.因此它的返回值是一个可选类型. 可以通过判断返回是否有值来判断是否调用成功 有值,说明调用成功 为nil,

Swift入门(四)——可选类型(Optionals)与断言(Assert)

可选类型是什么? 首先看一个问题,Swift中String类型的变量有一个叫做toInt的方法,可以把String类型变量转换为Int类型变量. var stringValue = "5" var intValue = stringValue.toInt(); println("intvalue = \(intValue)") 执行以上方法后得到了奇怪的结果: intvalue = Optional(5) 其实,可以发现,toInt方法的返回值并不是Int,而是In

《Swift Programming Language 》——可选链(Optional Chaining)

可选链(Optional Chaining)是一种可以请求和调用属性.方法及子脚本的过程,它的自判断性体现于请求或调用的目标当前可能为空(nil).如果自判断的目标有值,那么调用就会成功:相反,如果选择的目标为空(nil),则这种调用将返回空(nil).多次请求或调用可以被链接在一起形成一个链,如果任何一个节点为空(nil)将导致整个链失效. 注意: Swift 的自判断链和 Objective-C 中的消息为空有些相像,但是 Swift 可以使用在任意类型中,并且失败与否可以被检测到. 可选链

[iOS] Swift 初学手册:可选类型 (Optionals)

原文地址:http://blog.callmewhy.com/2014/09/23/beginners-guide-optionals-swift/ 几周前 (译者注:原文发表于6月24日),苹果发布了一个全新的编程语言: Swift .从那时起,我一直在阅读Swift 官方手册,并且在 Xcode6 beta 上把玩学习.我开始喜欢上了 Swift 的简洁和语法.我和我的团队一起学习这门全新的语言,并且将它和 Objective-C 这个有着30年历史的老伙计进行对比.同时,我们也在努力探索如

【Swift学习】Swift编程之旅---可选链(二十一)

可选链Optional Chaining是一种可以在当前值可能为nil的可选值上请求和调用属性.方法及下标的方法.如果可选值有值,那么调用就会成功:如果可选值是nil,那么调用将返回nil.多个调用可以连接在一起形成一个调用链,如果其中任何一个节点为nil,整个调用链都会失败,即返回nil. 通过在想调用的属性.方法.或下标的可选值(optional value)后面放一个问号(?),可以定义一个可选链.这一点很像在可选值后面放一个叹号(!)来强制展开它的值.它们的主要区别在于当可选值为空时可选

Swift学习-----可选类型

可选类型 * 可选类型表示变量可以有值, 也可以没有值 * C 和 Objective-C 中并没有可选类型这个概念 * Swift中只有可选类型才可以赋值为nil * 如果你声明一个可选常量或者变量但是没有赋值,它们会自动被设置为nil * 格式: Optional<类型> 或 在类型后面加上?号 可选类型的取值是一个枚举 * None 没有值 * Some 有值 * 由于可选类型在Swift中随处可见, 所以系统做了一个语法糖, 在类型后面加上? 注意: * nil不能用于非可选的常量和变

Swift 可选类型(补充)

// 可选类型 // 可选类型: 这个值要么存在等于X,要么这个值根本就不存在 var serverResponseCode : Int? = 404 // ?的意思是这个只存在为404,要么这个值就不存在为nil let possbileNumber = "123" // let coverNumber: Int? = possbileNumber.toInt() var responseCode: Int? = 404 // 要么存在为404 responseCode = nil 

swift中的可选类型

前几天转了一篇介绍?和感叹号的文章,现在自己搞明白了,记录一下! 1.swift中的可选类型变量表示这个变量可能有值,也可能为空.你可能会想这个直接用一个指针不就搞定了么?但swift是不支持指针的.(这个解释有些牵强,但是在给一个普通变量赋值为nil的时候,会出现语法错误) . 2.问号和叹号都能声明swift中的可选类型变量,比如: var num : Int? = 10 var num1 : Int! = 11 3.上边的两中声明方式是有区别的 问号声明的变量 在使用的时候必须强制解包赋值

初步swift语言学习笔记2(可选类型?和隐式可选类型!)

作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/28904115 转载请注明出处 假设认为文章对你有所帮助.请通过留言或关注微信公众帐号fengsh998来支持我,谢谢. 可选类型.隐式可选类型 在swift中.可选类型其根源是一个枚举型.里面有None和Some两种类型.事实上所谓的nil就是Optional.None, 非nil就是Optional.Some, 然后会通过Some(T)包装(wrap)原始值,这