Swift 可选(Optionals)类型】的更多相关文章

Swift 的可选(Optional)类型,用于处理值缺失的情况.可选表示"那儿有一个值,并且它等于 x "或者"那儿没有值". Swfit语言定义后缀?作为命名类型Optional的简写,换句话说,以下两种声明是相等的: var optionalInteger: Int? var optionalInteger: Optional<Int> 在这两种情况下,变量 optionalInteger 都是可选整数类型.注意,在类型和 ?之间没有空格. Opt…
晚上十一点半了,看书累了,原本想睡了的,想了想,还是把刚看的总结一下,把这篇笔记写了吧.广州下雨,真特么的冷..好了,废话不说了,说正题说说Swift可选类型. 先定义一个变量: var string="zhangxu"   想想这个变量要强转成 Int 类型的会怎样? // var Zint: int = string.toint() 这样子肯定是不行的,没发转换成 Int 类型的,那有没有想过 Zint 的值会是什么呢? 这时候我们今天的主角,可选类型就登场了! var Zint…
可选类型定义 Swift 标准库中定义后缀  ?为可选类型 Optional<Wrapped> 的语法糖,这里语法糖可以简单理解为一种便捷的书写语法.也就是说,下面两个声明是等价的: var name: Optional<String> var name: String? 上述两种情况,变量 name 被声明为可选字符串类型. 我们可以在xcode编译器中,按住 command 键 同时点击 OPtional,可以跟进去查看可选类型的具体实现: public enum Option…
首先我们先看下Objective-C与Swift语言对于可选nil的不同理解: Objective-C中的nil:表示缺少一个合法的对象,是指向不存在对象的指针,对结构体.枚举等类型不起作用(会返回NSNotFound) Swift中的nil:表示任意类型的值缺失,是一个确定的值,要么是该类型的一个值要么什么都没有(即为nil) 一.申明可选常量或变量 let status: Int? = // 申明可选Int类型的常量,初始值为1 var defaultAddress: String? = "…
swift用起来刚开始感觉有点怪怪的,但用了一段时间觉得还是挺好用的,哈哈.毕竟都是要有一个过程的嘛. 我就写一些自己在使用swift的时候的注意点吧,如有不正之处,还请指正! 一.在开发中优先使用常量,只有发现该标识符需要修改的时候,再改成变量,这样做可使数据更安全,以防止队友不小心把你的值修改了. 二.创建一个对象的时候,比如创建一个UIView对象 //1.创建UIView对象 let rect : CGRect = CGRectMake(, , , ) let view : UIView…
我们使用Swift这个苹果新推出的编程语言已经有一段时间了.其中的一个极大的优点就是苹果称为“optional types”的东西.几乎所有的objective-c程序员都知道用nil来表示某个引用类型的对象是没有值的.但是要把nil和某个变量的类型联系起来还是有些牵强. 这里,我们就来介绍一下Swift提供的optional type(可选类型).先介绍一些实现的细节,然后指出optional type体系里的几个要点. 类型? 在我们开始进入代码前,先来看看为什么一个类型被定义为可选的.我们…
本页包括内容: 类型注解(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提供了三种主要的集合类型,称为数组,集合和字典,用于存储值集合. 数组是有序的值集合. 集是唯一值的无序集合. 字典是键值关联的无序集合. Swift中无法再使用传统形式的for循环. //传统for循环形式不适用于Swift for(单次表达式;条件表达式;末尾循环体){中间循环体:} 遍历数组:可以使用for- in循环遍历数组中的值. let arrayStr:[String] = ["s","t","r","e&quo…
http://blog.haohtml.com/archives/15098 Swift中的类型属性(静态变量) Posted on 2014/06/13 类型属性语法 在 C 或 Objective-C 中,静态常量和静态变量的定义是通过特定类型加上global关键字.在 Swift 编程语言中,类型属性是作为类型定义的一部分写在类型最外层的花括号内,因此它的作用范围也就在类型支持的范围内. 使用关键字static来定义值类型的类型属性,关键字class来为类(class)定义类型属性.下面的…
import UIKit /*: 可选类型 * 可选类型表示变量可以有值, 也可以没有值 * C 和 Objective-C 中并没有可选类型这个概念 * Swift中只有可选类型才可以赋值为nil * 如果你声明一个可选常量或者变量但是没有赋值,它们会自动被设置为nil * 格式: Optional<类型> 或 在类型后面加上?号 可选类型的取值是一个枚举 * None 没有值 * Some 有值 * 由于可选类型在Swift中随处可见, 所以系统做了一个语法糖, 在类型后面加上? 注意:…
可选类型 <Swift权威指南>第2章千里之行始于足下——Swift语言基础,本章挑选了Swift语言的最基本特性加以介绍.尽管这些特性只占Swift全部特性的很少一部分,但却是所有的Swift程序都必不可少的.所以,读者通过对本章学习,可以使用Swift编写最基本的程序,并对Swift提供的新特性深深地震撼.本节为大家介绍可选类型. AD: 2.6  可选类型 可选类型也是Swift语言新添加的对象.主要是为了解决对象变量或常量为空的情况.在前面定义的变量和常量都不能为空.里面必须要有值.…
我们先看看如下代码: var n1: Int = 10 n1 = nil         //编译错误 let str: String = nil    //编译错误 Int和String类型不能接受nil的,但程序运行过程中有时被复制给nil是在所难免的,Swift为每一种数据类型提供一种可选类型(optional),即在某个数据类型后面加上问号(?)或感叹号(!),修改前文示例代码: var n1: Int? = 10 n1 = nil let str: String! = nil Int?…
可选类型是Swift的一个特色.它表示一个变量有可能有值,也可能没有值(nil). 声明的方式是“数据类型+问号”. 而当要使用一个可选类型的变量是,要在后面加感叹号“!”. 1 2 3 4 5 6 7 8 9 var height:Int?  //声明一个可选类型,默认值为nil   if height == nill{     println("你有多高?") }else{     println("你有\(height!)高.") }   height = 1…
可选类型详解 直接上代码解释 // 类中所有的属性在对象初始化时,必须有初始化值 class Person : NSObject { var name : String? var view : UIView? var age : String? } // 1.定义可选类型 // 1>普通定义可选类型的方式 var name : Optional<String> // 2>语法糖 //这样写默认为空 var name : String? // 2.给可选类型赋值 name = &qu…
可选类型 可选类型的介绍 注意: 可选类型时swift中较理解的一个知识点 暂时先了解,多利用Xcode的提示来使用 随着学习的深入,慢慢理解其中的原理和好处 概念: 在OC开发中,如果一个变量暂停不使用,可以赋值为0(基本属性类型)或者赋值为空(对象类型) 在swift开发中,nil也是一个特殊的类型.因为和真实的类型不匹配是不能赋值的(swift是强类型语言) 但是开发中赋值nil,在所难免.因此推出了可选类型 可选类型的取值: 空值 有值 定义可选类型 定义一个可选类型有两种写法 最基本的…
一.思维导图 二.代码 //这样无形中就会让代码很丑陋 if x != nil && y != nil { print("x或y都不等于空") } print("x或y有一个为空") //1 使用?? let name:String? = "我最帅" let age:Int = //??代表可选型解包 //下面两个执行结果由于值的变化而表现的不一样, print(name ?? "" + String(age)…
//: Playground - noun: a place where people can play import UIKit // swift中没有被赋值的变量是不能被使用的 //var str : String //str // Optionals 可选值 (用?号体现) // 或者是一个值, 或者是没有值(没有值时为nil) var a : Int? a a = var imOptionalVariable : String? imOptionalVariable = "我是可选值&q…
可空链式调用 可空链式调用是一种可以请求和调用属性.方法及下标的过程,它的可空性体现于请求或调用的目标当前可能为空(nil).如果可空的目标有值,那么调用就会成功:如果选择的目标为空(nil),那么这种调用将返回空(nil).多个连续的调用可以被链接在一起形成一个调用链,如果其中任何一个节点为空(nil)将导致整个链调用失败. 使用可空链式调用来强制展开 通过在想调用非空的属性.方法.或下标的可空值后面放一个问号,可以定义一个可空链.这一点很像在可空值后面放一个叹号(!)来强制展开其中值.它们的…
在Swift程序表达式中会看到问号(?)和感叹号(!),它们代表什么含义呢?这些符号都与可选类型和可选链相关,下面来看看可选链. 可选链: 类图: 它们之间是典型的关联关系类图.这些类一般都是实体类,实体类是系统中的人.事.物.Employee通过dept属性与Department关联,Department通过comp属性与Company关联. 下面看示例代码: class Employee { var no: Int = 0 var name: String = "Tony" var…
原文地址:http://www.cocoachina.com/newbie/basic/2014/0612/8801.html 特性提供了关于声明和类型的很多其它信息.在Swift中有两类特性,用于修饰声明的以及用于修饰类型的. 比如,required特性,当应用于一个类的指定或便利初始化器声明时.表明它的每一个子类都必须实现那个初始化器.再比方noreturn特性,当应用于函数或方法类型时,表明该函数或方法不会返回到它的调用者.   通过下面方式指定一个特性:符号@后面跟特性名,假设包括參数,…
可选链(Optional Chaining)是一种可以请求和调用属性.方法和子脚本的过程,用于请求或调用的目标可能为nil. 可选链返回两个值: 如果目标有值,调用就会成功,返回该值 如果目标为nil,调用将返回nil 多次请求或调用可以被链接成一个链,如果任意一个节点为nil将导致整条链失效. 可选链可替代强制解析 通过在属性.方法.或下标脚本的可选值后面放一个问号(?),即可定义一个可选链. 可选链 '?' 感叹号(!)强制展开方法,属性,下标脚本可选链 ? 放置于可选值后来调用方法,属性,…
Swift语言有很多特性,其中之一就是类型方法,相对于其他比较流行的编程语言(C#.Java),在Swift中类型方法最大的特征在于它的可继承性,我们举个例子说明: 俗话说,龙生龙凤生凤老鼠生儿会打洞:虽说龙和鼠都属于动物,但毕竟不是同类,所以生出来的当然不一样. 同理,对于Dragon和Mouse两个类而言,它们的newInstance类型方法返回的结果应该是各自类的实例: 我们先创建一个名为Animal的协议: protocol Animal { class func newInstance…
时间类型是我们在处理业务的时候使用非常频繁的一个数据类型.下面我们看一下时间NSDate的基本使用方法. 1.比较大小 我比较擅长.NET,我们知道C#里面DateTime类型可以使用">""<""="来直接判断.但是在Swift里NSDate是不支持这种比较的方式的.我们需要使用NSDate.Compare方法来比较.NSDate.Compare返回一个枚举NSComparisonResult.这个枚举包含3个值: NSCompar…
在开发中,数组这个概念我们应该很熟悉了,Objective-C 中为我们提供了 NSArray 作为数组的实现.大家应该对很熟悉了.而在 Swift 中,为我们提供了它自己对于数组的实现,也是这里我们要介绍的,就是 Array 类. Array 的官方文档可以参看这里: SwiftStandardLibraryReference 废话不多说,下面就开始我们的主题啦. <!-- more --> 创建数组 我们要使用一个数组,首先要做的就是创建它,Array 类为我们提供了几种方式来创建: va…
Optional的定义 Optional也是Objective-C没有的数据类型,是苹果引入到Swift语言中的全新类型,它的特点就和它的名字一样:可以有值,也可以没有值,当它没有值时,就是nil.此外,Swift的nil也和Objective-C有些不一样,在Objective-C中,只有对象才能为nil,而在Swift里,当基础类型(整形.浮点.布尔等)没有值时,也是nil,而不是一个初始值,没有初始值的值,是不能使用的,这就产生了Optional类型.定义一个Optional的值很容易,只…
//: Playground - noun: a place where people can play import UIKit var str = "Hello, playground" let orangeAreYellowColor = true let appleIsBlue = false if orangeAreYellowColor { print("yes! The orange is Yellow Color.") } else { print(…
//: Playground - noun: a place where people can play import UIKit enum Month: Int { // 这么定义, 后面的Feb, Mar会自动赋值为2和3.. case Jan = 1, Feb, Mar, Apr, May, Jun, July, Aug, Sep, Oct, Nov, Dec } let currentMonth:Month = .Nov // 查看枚举对应的值 currentMonth.rawValue…
//: Playground - noun: a place where people can play import UIKit // 值类型:指的是当一个变量赋值给另外一个变量的时候, 是copy一个副本 // 两个变量之间互不影响, 也就是说, 另外一个变量的值改变, 不会影响到另外一个变量 // 也就是传的只是一个值, 不是一个引用(地址) var a = 0 var b = a b = 2 a // 闭包和函数都是引用类型 // 引用类型:指的是当引用类型变量赋值给另外一个变量的时候,…
Swift中,如果要把字符串转换成数字类型(比如整型,浮点型等).可以先转成NSString类型,让后再转. 1 2 3 4 //将文本框中的值转换成数字 var i = (tf1.text as NSString).intValue var f = (tf1.text as NSString).floatValue var d = (tf1.text as NSString).doubleValue…
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 初学Swift,会遇到一些潜在的小问题,比如我们在某个集合对象中查找一个元素的时候会用到indexOf方法. 在API文档里可以看到该方法有2个重载: indexOf(_: (Self.Generator.Element) throws -> Bool) rethrows -> Self.Index? indexOf(_: Self.Generator.El…