李洪强iOS开发Swift篇—05_元组类型
李洪强iOS开发Swift篇—05_元组类型
一、元组类型介绍
1.什么是元组类型
元组类型由 N个 任意类型的数据组成(N >= 0),组成元组类型的数据可以称为“元素”
示例:
let position = (x : 10.5, y : 20) // position有2个元素,x、y是元素的名称
let person = (name : "jack") // person只有name一个元素
let data = () // 空的元组
2.元素的访问
var position = (x : 10.5, y : 20)
(1)用元素名称
let value = position.x // 取值
position.y = 50 // 设值
(2)用元素位置
var value = position.0 // 相当于var value = postion.x
position.1 = 50 // 相当于postion.y = 50
代码示例:

注意:如果用let来定义一个元组,那么就是常量,就无法修改它的元素
let point = (x : 10, y : 20)
point.x = 30
第2行代码会报错
代码示例:

3.元组的输出
可以输出整个元组来查看所有元素的值
var point = (x : 10.5, y : 20)
point.x = 30
point.1 = 50
println(point)
输出结果是:(30.0, 50)
二、使用细节
(1)可以省略元素名称
let position = (10, 20)
let person = (20, "jack")
(2)可以明确指定元素的类型
var person: (Int, String) = (23, "rose")
person的第0个元素只能是Int类型、第1个元素只能是String类型
注意:在明确指定元素类型的情况下不能加上元素名称
因此,下面的语句是错误的
var person: (Int, String) = (age : 23, name : "rose")
(3)可以用多个变量接收元组数据
var (x , y) = (10, 20) // x是10,y是20
var point = (x, y) // point由2个元素组成,分别是10和20
(4)可以将元素分别赋值给多个变量
var point = (10, 20)
var (x , y) = point
// x是10,y是20
(5)可以使用下划线 _ 忽略某个元素的值,取出其他元素的值
var person = (20, "jack")
var (_, name) = person
// name的内容是“jack”,person中的元素20被忽略
李洪强iOS开发Swift篇—05_元组类型的更多相关文章
- 李洪强iOS开发Swift篇---12_NSThread线程相关简单说明
李洪强iOS开发Swift篇---12_NSThread线程相关简单说明 一 说明 1)关于多线程部分的理论知识和OC实现,在之前的博文中已经写明,所以这里不再说明. 2)该文仅仅简单讲解NSThre ...
- 李洪强iOS开发Swift篇---11_变量&常量&元组
李洪强iOS开发Swift篇---11_变量&常量&元组 说明: 1)终于要写一写swift了.其实早在14年就已经写了swift的部分博客,无奈时过境迁,此时早已不同往昔了.另外,对 ...
- 李洪强iOS开发Swift篇—10_方法
李洪强iOS开发Swift篇—10_方法 一.简单说明 跟其他面向对象语言一样,Swift中的方法可以分为2大类: (1)实例方法(Instance Methods) 在OC中,实例方法以减号(-)开 ...
- 李洪强iOS开发Swift篇—09_属性
李洪强iOS开发Swift篇—09_属性 一.类的定义 Swift与Objective-C定义类的区别 Objective-C:一般需要2个文件,1个.h声明文件和1个.m实现文件 Swift:只需要 ...
- 李洪强iOS开发Swift篇—08_函数(2)
李洪强iOS开发Swift篇—08_函数(2) 一.函数类型 函数类型也是数据类型的一种,它由形参类型和返回值类型组成,格式是 (形参类型列表) -> 返回值类型 1 func sum(num1 ...
- 李洪强iOS开发Swift篇—07_函数
李洪强iOS开发Swift篇—07_函数 一.函数的定义 (1)函数的定义格式 1 func 函数名(形参列表) -> 返回值类型 { 2 // 函数体... 3 4 } (2)形参列表的格式 ...
- 李洪强iOS开发Swift篇—06_流程控制
李洪强iOS开发Swift篇—06_流程控制 一.swift中的流程控制 Swift支持的流程结构如下: 循环结构:for.for-in.while.do-while 选择结构:if.switch 注 ...
- 李洪强iOS开发Swift篇—04_运算符
李洪强iOS开发Swift篇—04_运算符 一.运算符 1.Swift所支持的部分运算符有以下一些 赋值运算符:= 复合赋值运算符:+=.-= 算术运算符:+.-.*./ 求余运算符:% 自增.自减运 ...
- 李洪强iOS开发Swift篇—03_字符串和数据类型
李洪强iOS开发Swift篇—03_字符串和数据类型 一.字符串 字符串是String类型的数据,用双引号""包住文字内容 let website = "http:// ...
随机推荐
- C#微信公众号开发 -- (五)自定义菜单创建
公众号中,底部都是有自己定义的功能按钮,通过点击某个按钮来实现指定的业务逻辑操作. 下面就来说说这些按钮是怎样放到微信公众平台的,还是先来看看微信的官方解释: 请注意: 1.自定义菜单最多包括3个一级 ...
- Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式)
Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式) 原文地址:http://alanland.iteye.com/admin/blogs/1600685(欢迎转载 ...
- iOS--NSNetService和NSNetServiceBrowser(Bonjour网络编程)
Cocoa 网络框架: Cocoa 网络框架有三层,最底层的是基于 BSD socket库,然后是 Cocoa 中基于 C 的 CFNetwork,最上面一层是 Cocoa 中 Bonjour.通常我 ...
- IOS GCD 的理解
GCD (Grand Central Dispatch) 是Apple公司开发的一种技术,它旨在优化多核环境中的并发操作并取代传统多线程的编程模式. 在Mac OS X 10.6和IOS 4.0之后开 ...
- Codevs 5208 求乘方取模
5208 求乘方取模 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 未定级 题目描述 Description 给定非负整数A.B.M,求(A ^ B) mod M. 输入描述 Inpu ...
- 字节序转换与结构体位域(bit field)值的读取
最近又遇到了几年前遇到的问题,标记一下. 对于跨字节位域(bit field)而言,如果数据传输前后环境的字节序不同(LE->BE,BE->LE),简单地调用(ntohs/ntohl/ht ...
- QT5.0.1在Windows下 出现QApplication: No such file or directory 问题的解决办法
第一个Qt 程序 环境window ,ide qt creator 新建一个 C++ 项目 > 新建一个main.cpp 输入如下代码 #include<QApplication> ...
- Unix环境高级编程学习笔记——fcntl
写这篇文正主要是为了介绍下fcntl,并将我自己在学习过程中的一些理解写下来,不一定那么官方,也有错误,希望指正,共同进步- fcntl: 一个修改一打开文件的性质的函数.基本的格式是 int fcn ...
- windows+apache2.2.9+php5.4.41+mysql安装
安装Apache(D盘根目录下) (1)打开D:\Apache24\conf下httpd.conf 文件,用记事本打开编辑作如下修改并保存. 第37行ServerRoot "c:/Apach ...
- 点击listview 的列头对其item进行自动排序
若要自定义排序顺序,必须编写一个实现 IComparer 接口的类,并将 ListViewItemSorter 属性设置为该类的一个对象.当设置 ListViewItemSorter 属性值时,将自动 ...