一,首先,元组是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(二,元组,可选类型,类型转化)的更多相关文章

  1. swift中的可选类型

    可选类型也是Swift语言新添加的对象.主要是为了解决对象变量或常量为空的情况.在前面定义的变量和常量都不能为空.里面必须要有值. Swift中的可选类型则允许变量(常量)中没有值(被设为nil).要 ...

  2. Swift 可选(Optionals)类型

    Swift 的可选(Optional)类型,用于处理值缺失的情况.可选表示"那儿有一个值,并且它等于 x "或者"那儿没有值". Swfit语言定义后缀?作为命 ...

  3. 窥探Swift之别样的枚举类型

    想必写过程序的童鞋对枚举类型并不陌生吧,使用枚举类型的好处是多多的,在这儿就不做过多的赘述了.Fundation框架和UIKit中的枚举更是数不胜数,枚举可以使你的代码更易阅读并且可以提高可维护性.在 ...

  4. Swift学习(三)类型推导&基本运算&分支&循环

    一.Swift中类型推导&基本运算 Swift中类型推导 如果一个标识符在定义时有直接赋值,那么可以根据后面赋值的类型,来推导出前面标识符的类型,这样前面标识符的(:类型)可以省略 查看标识符 ...

  5. The Swift Programming Language-官方教程精译Swift(5)集合类型 -- Collection Types

    Swift语言提供经典的数组和字典两种集合类型来存储集合数据.数组用来按顺序存储相同类型的数据.字典虽然无序存储相同类型数据值但是需要由独有的标识符引用和寻址(就是键值对).   Swift语言里的数 ...

  6. Struts(二十):自定义类型转换器

    如何自定义类型转换器: 1)为什么需要自定义类型转化器?strtuts2不能自动完成字符串到所有的类型: 2) 如何定义类型转化器? 步骤一:创建自定义类型转化器的类,并继承org.apache.st ...

  7. Timestame类型和String 类型的转化

    Timestame类型和String 类型的转化 String转化为Timestamp: SimpleDateFormat df = new SimpleDateFormat("yyyy-M ...

  8. MFC六大核心机制之二:运行时类型识别(RTTI)

    上一节讲的是MFC六大核心机制之一:MFC程序的初始化,本节继续讲解MFC六大核心机制之二:运行时类型识别(RTTI). typeid运算子 运行时类型识别(RTTI)即是程序执行过程中知道某个对象属 ...

  9. Redis 小白指南(二)- 聊聊五大类型:字符串、散列、列表、集合和有序集合

    Redis 小白指南(二)- 聊聊五大类型:字符串.散列.列表.集合和有序集合 引言 开篇<Redis 小白指南(一)- 简介.安装.GUI 和 C# 驱动介绍>已经介绍了 Redis 的 ...

随机推荐

  1. python中的对象拷贝

    python中.进行函数參数传递或者返回值时,假设是一般的变量,会拷贝传递.假设是列表或字典则是引用传递.那python怎样对列表和字典进行拷贝传递呢:标准库的copy模块提供了两个方法:copy和d ...

  2. 1.关于UltraEdit中的FTP和Tenent配置,UE远程连接Linux进行文件操作

     1  安装UltraEdit 2  配置FTP相关的配置 文件àFTP/Tenet(T)à watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3 ...

  3. careercup-数学与概率 7.6

    7.6 在二维平面上,有一些点,请找出经过点数最多的那条线. 解法: 类似于leetcode:Max Points on a Line 我们只需在任意两点之间“画”一条无限长的直线(也即不是线段),并 ...

  4. 标准I/O库之二进制I/O

    如果进行二进制I/O操作,那么我们更愿意一次读或写整个结构.因此,提供了下列两个函数以执行二进制I/O操作. #include <stdio.h> size_t fread( void * ...

  5. “:Choose a destination with a supported architecture in order to run on this device.”

    我在编译从GitHub上clone下来的<TweeJump>时,出现如下错误:":Choose a destination with a supported architectu ...

  6. [转] 如何在 Ubuntu 14.04 上通过 apt-get 安装 Apache Tomcat 7

    PS:war 部署路径:/var/lib/tomcat7/webapps http://www.linfuyan.com/how-to-install-apache-tomcat7-on-ubuntu ...

  7. asp.net 网站发布的步骤

    网站发布步骤: 这部分是转载文章 在此标明出处,以前有文章是转的没标明的请谅解,因为有些已经无法找到出处,或者与其它原因. 如有冒犯请联系本人,或删除,或标明出处. 因为好的文章,以前只想收藏,但连接 ...

  8. Form开发中组件控制的几个常用方法

    转自:http://oracleseeker.com/2009/09/01/graphical_component_control_in_oracle_ebs_form/ 在Oracle EBS 的F ...

  9. SQL Server2008R无法登录的解决方案(系统文件损坏)1814 18456....不看别后悔,有用请点赞

    废话 早上一开电脑,黑屏幕跑一些修复系统的代码....进入系统后,sql server连接不上 正文 原因:sql server的服务自动关闭了,并且启动失败 windows日志信息:传递给数据库 ' ...

  10. 转载-优秀程序员的十个tips

    理解技术债务 技术债务就像信用卡一样,会有很高的利息,时间越长,修复所化的代价就越大.团队应该培养一种保证设计质量的文化,鼓励重构.同时应当鼓励其它有关代码质量的实践. 保持对原理的好奇心 做Andr ...