Swift语言学习(四)字符串与Array等集合的使用
Swift 提供了C和Objective-C基础类型的自己一套版本,包括用于整型的Int,用于浮点值的Double和Float,用于布尔值的Boolean,和用于文本数据的String。Swift还提供了Array和Dictionary这两种集合类型的增强版本。
我们知道在iOS开发中用的最多的基础类型可能就数字符串了,以及一些集合类型的使用,下面我们来简单学习下字符串String以及Array、Dictionary等集合类型的使用方法
一、字符串
1、字符串的字面量 , 例如"jeck"字面量

2、swift中的字符串和OC中的字符串的区别
Swift中的字符串没有可变类型和不可变类型之分,在swift中,字符串到底可变不可变, 取决于声明变量的类型,如果定义的是let就是不可变,假如定义的是var就是可变
Swift中的字符串是值类型 , 而OC当中,不加特殊声明的话是引用类型,不用担心内存问题,Swift已经做好了优化,

3 、Swift中可变类型和OC中的NSString做了完美的对接,换句话说,就是swiftStrig可以使用NSString的方法
下面简单介绍下String的一些使用方法:

4、字符串插值
在swift输出语句中没有格式化占位符,想要实现这样的效果,我们要用到字符串插值格式:"\()"

二、swift中的集合
swift中的集合和OC中的集合的区别:
1、在swift中的集合类也都是值类型,而OC当中的是引用类型
2、在swift中,也是使用引用计数的概念来管理内存的,但是引用计数只适用于对象类型,值类型不需要管理
3、在swift中,引用计数管理内存的方法与OC当中引用计数管理内存的方法,还是不同的 (见后面内容)
4、在swift中数组是可以存放任意类型,但是OC中,只能存放对象类型
1、数组(Array)
在swift中,Array也没有可变和不可变类型之分,而且取决于用什么关键字来修饰,var就是可变,let就是不可变
在swift中,使用字面量来给一个数字赋值
当我们事先声明数组中元素的类型,内部元素必须一致
当然我们也可以像下面这样写:

下面我们来分别介绍下数组元素的增、删、改、查:
(1)、数组增加元素

(2)、数组删除元素
通过下面面的方法来删除指定下标的元素

(3)、 改变数组中的元素

(4)、数组查询

数组的初始化,声明存储固定类型的数组
1、

2、

使用构造方法创建的是由一个特定数据类型构成的数组
2、字典(Dictionary)
使用字面量来给字典进行赋值

1、字典键值对的增加

2、字典键值对的删除

3、字典键值对的修改

4、字典键值对的查询

打印结果如下:

字典初始化的方式也有两种
使用字典初始化方式进行创建的是固定键值类型的字典

Swift和OC中集合对比
在OC中,我们常用的数组和字典都是引用类型,而Swift中是值类型,这是因为在Swift中,这些结合类的底层都是struct
枚举值类型,函数,闭包是引用类型

iOS技术交流群 461069757 欢迎加入
Swift语言学习(四)字符串与Array等集合的使用的更多相关文章
- Swift语言指南(十)--字符串与字符
原文:Swift语言指南(十)--字符串与字符 字符串是一段字符的有序集合,如"hellow,world"或"信天翁".Swift 中的字符串由 String ...
- 一份关于Swift语言学习资源的整理文件
一份关于Swift语言学习资源的整理文件 周银辉 在这里下载 https://github.com/ipader/SwiftGuide
- Swift语言—有趣的字符串连接、数组、字典
字符串链接:Swift语言中的字符串连接方式本人觉得非常的有趣,变量连接需要用右斜杠,并且变量名要括起来 “\(变量名)”,后面的字符串连接分别用逗号 ‘ , ’ 隔开 数组: Var arr = [ ...
- Swift语言指南(四)--类型安全和类型推断
原文:Swift语言指南(四)--类型安全和类型推断 Swift是一门类型安全语言,类型安全语言需要代码里值的类型非常明确.如果你的代码中有部分值需要String类型,你就不能错误地传递Int. 鉴于 ...
- Swift语言学习
因为想要学Mac os x编程,中文教材太少了,看了很多厉害的英文教材,很多都是swift语言的了,所以决定先要大体学一下swift语言. 学习一门语言,第一件事看swift官方文档,这里附上Coco ...
- swift语言学习博文精选
初探swift语言的学习笔记九(OC与Swift混编) Objective-C 与 Swift 混编之路 Swift项目兼容Objective-c问题汇总
- 【Swift】从零开始的Swift语言学习笔记-1:前言&Hello World
该系列分为两个大的部分. Swift基本语法 使用Xcode编写iOS应用程式 两个部分会双线并行更新. 本人的学习资料大多为Apple Develop官方上的生肉,难免会有疏漏,望斧正. 另外该系列 ...
- Swift语言学习之OC和Swift混编
本文转自http://www.helloswift.com.cn/swiftbase/2015/0112/3469.html iOS OC和Swift混编 1.创建一个swift或者oc的工程:我这里 ...
- Swift语言学习之学习资源
(1) http://swift.sh (2) Let's Swift – WRITE THE CODE. CHANGE THE WORLD. http://letsswift.com (3)http ...
随机推荐
- 【HDOJ6354】Everything Has Changed(计算几何)
题意: 给定一个平面和一个(0,0)为中心的大圆,有n个小圆保证没有两两之间相交与覆盖整个大圆的情况,求小圆覆盖后大圆的周长并 1≤m≤100, -1e3<=x[i],y[i]<=1e3, ...
- 如何让Gridview在没有数据的时候显示表头[没有使用SqlDataSource控件时]
原文发布时间为:2008-08-03 -- 来源于本人的百度文章 [由搬家工具导入] 要看全文请点击http://blog.csdn.net/windok2004/archive/2007/10/28 ...
- json-lib maven依赖出错的问题
项目中要用到json-lib,mvnrepository.com查找它的dependency时结果如下: xml 代码 <dependency> <groupId>net.sf ...
- MySQL中blob 与 text
BLOB是一个二进制大对象,可以容纳可变数量的数据.有4种BLOB类型:TINYBLOB.BLOB.MEDIUMBLOB和LONGBLOB.它们只是可容纳值的最大长度不同. 有4种TEXT类型:TIN ...
- POJ 3461 kmp 应用
题意:求匹配串在文本中出现次数,KMP应用,理解了就OK了,每次匹配成功就累加次数,开始的时候超时, 由于在处理每次成功的时候让i=i-len2+1,相当于回溯了,后来一想,本次成功,相当于" ...
- LeetCode OJ--Search in Rotated Sorted Array
http://oj.leetcode.com/problems/search-in-rotated-sorted-array/ 转换了一次的有序数组,进行类似二分查找. 从begin到mid和从mid ...
- (46)C#注册表及读写
启动注册表:regedit 结构: 注册表一共有7个配置单元用regedit只能看到5个 HKEY_CLASSES_ROOT 包含系统上文件类型的细节(.txt,.doc)等.以及使用那些应用程序可以 ...
- Python知识图谱
一.Python全栈图谱 2.Python语言高级 Python 全栈工程师前端 Python全栈工程师后端 Python Linux运维自动化开发 Python KaliLinux信息安全开发和使用 ...
- 加密算法和MD5等散列算法的区别(转)
本文转自http://www.cnblogs.com/eternalwt/archive/2013/03/21/2973807.html 感谢作者 1.在软件开发的用户注册功能中常出现MD5加密这个概 ...
- Source Tree 簡介
Table of Contents 1. 什麼是 Source Tree ? 1.1. 下載 1.2. SourceTree 介面簡介 1.3. git 指令/狀態圖 2. SourceTrees 超 ...