Swift(二,元组,可选类型,类型转化)
一,首先,元组是Swift中特有的,OC中没有元组相关类型,具体怎么用,看下面的例子吧
//1.使用元组来定义一组数据
let infoTuple = ("cjh",,1.8)
let nameTuple = infoTuple.
print(nameTuple)
let count = nameTuple.characters.count //2.1 普通元组的定义方式
let errorMsg = ("error",)
errorMsg.
//2.2 给元组中所有的元素起别名
let errorTuple1 = (error : "error", errorCode : )
errorTuple1.error
errorTuple1.
//2.3 元组的元素别名 就是元组的名称
let (error,errorCode1) = ("error",)
error
errorCode1
//3.元组的运用之一,快速的交换2个数值
var a = 10
var b = 20
(a, b) = (b, a)
a
b
//交换完毕
二,可选类型. 在OC里面,会经常用到先定义一个变量,但是不马上使用,回去给它赋值为0或nil,但是Swift是一门强类型语言,nil也是一种特殊的类型,如果给它一开始就赋值为nil的话,那么当它的真实类型不匹配的时候,就会报错了.所以Swift中推出了可选类型.它的取值有空值和有值2种.基本用法如下
//1.定义可选类型
var name : String? = nil
//var Name :Optional<String> = nil //不常用
//2.赋值
name = "cjh"
//3.取值 print(name!)
//4.强制解包是个危险的操作,如果没有值,强制解包会导致程序崩溃,所以先判断
if name != nil {
print(name!)
}
//5.可选绑定
/*
1.会先判断name有没有值,如果没有值,就不执行{}里的内容
2.如果有有值,系统先对name强制解包,再赋值给前面的name,再执行{}的内容
*/
if let name = name{
print(name)
}
三,类型转化. 有is 和as ,其中is就和OC中isKindOfClass类似,判断一个实例是否是某种类型.as就是将实例转成某一种类型,基本用法如下
import UIKit //1.is 的使用 let array = ["cjh","abc",,]
let item = array[]
if item is Int {
print("是整型")
} //2.as? as!
//1.将NSObject转成具体的类型
//2.as? 将NSObject转成一个可选类型
//3.as! 将NSObject转成一个具体的类型(注意:如果转化不成功,程序会崩溃,慎用)
//2.1 定义字典
let infoDict = ["name" : "cjh","age" : ,"height" : 1.8]
let age = infoDict["age"]
//一步一步分开写
if let age1 = age {
let age2 = age1 as? Int
if let age3 = age2{
print(age3)
}
}
//简便写法
if let age = infoDict["age"] as? Int{
print(age)
}
ok,就这样了
奈文摩尔 16.05.12
Swift(二,元组,可选类型,类型转化)的更多相关文章
- swift中的可选类型
可选类型也是Swift语言新添加的对象.主要是为了解决对象变量或常量为空的情况.在前面定义的变量和常量都不能为空.里面必须要有值. Swift中的可选类型则允许变量(常量)中没有值(被设为nil).要 ...
- Swift 可选(Optionals)类型
Swift 的可选(Optional)类型,用于处理值缺失的情况.可选表示"那儿有一个值,并且它等于 x "或者"那儿没有值". Swfit语言定义后缀?作为命 ...
- 窥探Swift之别样的枚举类型
想必写过程序的童鞋对枚举类型并不陌生吧,使用枚举类型的好处是多多的,在这儿就不做过多的赘述了.Fundation框架和UIKit中的枚举更是数不胜数,枚举可以使你的代码更易阅读并且可以提高可维护性.在 ...
- Swift学习(三)类型推导&基本运算&分支&循环
一.Swift中类型推导&基本运算 Swift中类型推导 如果一个标识符在定义时有直接赋值,那么可以根据后面赋值的类型,来推导出前面标识符的类型,这样前面标识符的(:类型)可以省略 查看标识符 ...
- The Swift Programming Language-官方教程精译Swift(5)集合类型 -- Collection Types
Swift语言提供经典的数组和字典两种集合类型来存储集合数据.数组用来按顺序存储相同类型的数据.字典虽然无序存储相同类型数据值但是需要由独有的标识符引用和寻址(就是键值对). Swift语言里的数 ...
- Struts(二十):自定义类型转换器
如何自定义类型转换器: 1)为什么需要自定义类型转化器?strtuts2不能自动完成字符串到所有的类型: 2) 如何定义类型转化器? 步骤一:创建自定义类型转化器的类,并继承org.apache.st ...
- Timestame类型和String 类型的转化
Timestame类型和String 类型的转化 String转化为Timestamp: SimpleDateFormat df = new SimpleDateFormat("yyyy-M ...
- MFC六大核心机制之二:运行时类型识别(RTTI)
上一节讲的是MFC六大核心机制之一:MFC程序的初始化,本节继续讲解MFC六大核心机制之二:运行时类型识别(RTTI). typeid运算子 运行时类型识别(RTTI)即是程序执行过程中知道某个对象属 ...
- Redis 小白指南(二)- 聊聊五大类型:字符串、散列、列表、集合和有序集合
Redis 小白指南(二)- 聊聊五大类型:字符串.散列.列表.集合和有序集合 引言 开篇<Redis 小白指南(一)- 简介.安装.GUI 和 C# 驱动介绍>已经介绍了 Redis 的 ...
随机推荐
- 在chrome下安装Proxy SwitchySharp插件
https://chrome.google.com/webstore/detail/dpplabbmogkhghncfbfdeeokoefdjegm
- oracle 查看表属主和表空间sql
查看表空间 select * from user_tablespaces where table_name = 'TableName' 查看表属主 select Owner from all_ta ...
- 文件处理-Directory类 (C#)
转http://skybirdzw.blog.163.com/blog/static/7257062620099751329403/ 文件处理-Directory类 (C#) Directory.Cr ...
- 关于调用系统照相机Activity被销毁问题解决
<activity android:name=".visitplan_finish" android:co ...
- 什么是aop?
这个命题其实是讲了的,但是之前没有做,发现一些面试会问到,结合自己之前的学习经历.简单把这个问题描述一下. aop是跟oop相对应的一个概念.分别是aspect oriented programmin ...
- bootstrap.css.map这个文件有何用处?该怎能使用它?
. ├── bootstrap.css ├── bootstrap.css.map ├── bootstrap.min.css ├── bootstrap-theme.css ├── bootstra ...
- C++Primer笔记二
真是一本好书,就这么点,就感觉学到很多了,当然也是我水平太差. 用shell或者bash的时候有一个文件重定向,就是每次程序运行的时候,我们都需要手动输入内容,然后程序输出内容,这时可以用文件来代替. ...
- 转载:在Visual Studio 2013中管理中国特色的社会主义Windows Azure
原文链接: http://www.pstips.net/get-azurechinacloud-settings.html 谷歌被豪迈地放弃了中国市场,微软仍旧在中国市场摸爬滚打,跪着挣钱.其中私人定 ...
- ImageIcon图像处理相关测试【一些特殊的处理方式】
/*************以下源码通过测试******************************/ package cn.jason.ios.images; import java.awt.F ...
- 02_使用WebMagic爬虫获取CSDN推荐专家的个人博客信息
本来是想抓取博客园的博客推荐的页面的,但由于一些博客进去的页面格式都不太相同,一时不想花时间去寻找规律,发现CSDN上面的格式较为单一,就决定以CSDN推荐专家的个人博客信息作为爬虫抓取的目标. [首 ...