swift语言-可选类型

可选类型

什么是可选类型

可选值类型的数据有两种可能:有值、没有值(nil)。注意需要在变量类型后面加问号(?)。如果是Int加问号(?),则变量的为Int?型的。问号(?)是可选类型的标志。

可选值可以使用if判断有没有值

#import Foundation
var optValue: Int? = nil
if optValue != nil{
     println("not nil")
}else{
     println("nil")
}

如何获得可选值里的值?

强制解析

注意在可选变量后加感叹号(!)

感叹号是强制解析的标志。

#import Foundation
//非nil情况
var optValue:Int? = 3
println(intValue)  //会打印Optional(3)
println(intValue!) //会打印3
var intValue:Int = optValue!
println(intValue)
//可选类型的Int才能赋值为nil,普通的Int只能赋值整型
var optValue1:Int? = nil
//var intValue2:Int = optValue1!
//println(intValue2)

注意如果强制解析没有值可能会一起运行时错误。所以最好加个是否为nil的判断。

#import Foundation
var optValue1:Int? = nil
if optValue1 != nil {
     println(optValue1!)
}

可选绑定

增加一个临时量并给临时变量赋可选值,通过if条件判断获得可选类型的值

如果可选类型的变量没有值if条件不满足,如果可选类型变量有值则通过临时变量获得值

#import Foundation
var optValue1:Int? = nil
if let tempValue = optValue1 {
     println(tempValue)
}
时间: 2025-01-01 21:14:00

swift语言-可选类型的相关文章

Swift 语言附注 类型

本页包含内容: 类型注解(Type Annotation) 类型标识符(Type Identifier) 元组类型(Tuple Type) 函数类型(Function Type) 数组类型(Array Type) 可选类型(Optional Type) 隐式解析可选类型(Implicitly Unwrapped Optional Type) 协议合成类型(Protocol Composition Type) 元类型(Metatype Type) 类型继承子句(Type Inheritance C

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

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

Swift:可选类型(Optional)

在我们使用objective-c表示字符串信息的时候,可以用下面方法书写. NSString *str = @"秋恨雪"; str = nil; 因为objective-c是弱类型语言,所以这里的str既可以是具体的字符串也可以是nil.但到了Swift中就不可以了,因为Swift是类型安全的语言,一个String类型的变量不可能既能是具体的字符串,又可以为nil(更严格的说String类型的内容只能是字符串).所以,在Swift中有了可选类型的概念.(其实这一概念也是"借鉴

Swift语言之类型方法

Swift语言有很多特性,其中之一就是类型方法,相对于其他比较流行的编程语言(C#.Java),在Swift中类型方法最大的特征在于它的可继承性,我们举个例子说明: 俗话说,龙生龙凤生凤老鼠生儿会打洞:虽说龙和鼠都属于动物,但毕竟不是同类,所以生出来的当然不一样. 同理,对于Dragon和Mouse两个类而言,它们的newInstance类型方法返回的结果应该是各自类的实例: 我们先创建一个名为Animal的协议: protocol Animal { class func newInstance

Swift中可选类型(Optional)的用法 以及? 和 ! 的区别 (转载博客,知识分享)

本文转载自:代码手工艺人的博客,原文名称:Swift之 ? 和 ! Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值,也就是说变量不会有默认值,所以要求使用变量之前必须要对其初始化.如果在使用变量之前不进行初始化就会报错: C代码   var stringValue : String //error: variable 'stringValue' used before being initialized //let hashValue = stringVa

swift语言-布尔类型

1. 布尔类型 1 如何声明布尔类型量 布尔类型用来表示真假的,通常用在条件和循环结构中.使用关键字Bool,其值为true或false.swift中的布尔值和Java语言一样,不与0和非0相关.所以代码中if后面的布尔表达式不使用赋值语句. 如下代码: #import Foundation var intlValue = 100 //if boolValue = 100{ if boolValue == 100{ println("true") }else{ println(&quo

[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语言未来的发展

1. Swift 容易阅读 如你所能预计到的一门基于 C 构建的语言,Objective-C 身上所有的毒疣子都有.为了将关键词和类型同C的类型作区分,Objective-C 使用@符号引入了新的关键词.因为 Swift 不是基于C构建的,它同意了所有的关键词,并将 Objective-C 类型和对象相关的关键词前面大量的@符号移除了. Swift 丢弃了遗留下来的约定.因而你不再需要行尾的分号,以及 if/else 语句中围绕条件表达式的括弧.另外一个大变化就是方法的调用不再互相嵌套成中括号的

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

可选类型.隐式可选类型 其次swift还引入一个较有趣的初始值设置语法使用"?"操作符及"!"号操作符 如:"var optionalString: String? = "Hello" optionalString == nil var optionalName: String? = "John Appleseed" var greeting = "Hello!" if let name = op