【Swift4】(3) 数组 | 字典 | 示例

使用Swift 字典模型互转 就是这么简单 写在前面的话现在很多iOS项目的开发开始转向Swift语言。 相信 Swift语言很快会成为iOS工程师 必备技能。 字典转模型, 模型转转字典在开发过程中扮演非常重要的角色。 今天就和大家分享一下使用Swift,如何进行字典模型互转。 Demo功能:1,字典–>模型 :最简单的形式class User: NSObject { //模型类 var name:String? va 阅读详情

⭐️ 本文首发自 前端修罗场(点击加入),是一个由 资深开发者 独立运行 的专业技术社区,我专注 Web 技术、Web3、区块链、答疑解惑、面试辅导以及职业发展。博主创作的 《前端面试复习笔记》(点击订阅),广受好评,已帮助多人提升实力、拿到 offer。现在订阅,私聊我即可获取一次免费的模拟面试机会,帮你评估知识点的掌握程度,获得更全面的学习指导意见!

数组

  • Arrays

1、一个数组只能存储特定类型的数据;
2、所存储的数据不一定是一个类的对象,可以是基础数据类型;

var array = ["A","B","C"] //["A", "B", "C"]
var array2:[String] = ["A","B","C"] //["A", "B", "C"]
var array3:Array<String> = ["A","B","C"] //["A", "B", "C"]

array[0] = "AA" //"AA"
array //["AA", "B", "C"]

var array4 = [Int]() //[]

var array5 = Array<String>() //[]

var array6:[Int] = [] //[]

array = [String]() //清空数组
array

array6 = [Int](repeatElement(0, count: 10)) //[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

var array7 = [2,3,4]
var array8 = array6 + array7 //两个数组合并 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4]
  • 数组基本操作
var array = ["A","B","C"]

array.count //3
array.isEmpty //false

array.append("#") //["A", "B", "C", "#"]

array += ["D","E"] //["A", "B", "C", "#", "D", "E"]

array.insert("hello", at: 0) //在数组位置上插入 ["hello", "A", "B", "C", "#", "D", "E"]

array.remove(at: 0) //"hello" 删除的元素

array.removeLast() //"E" 删除最后一个元素

array[0] = "AA" 
array //["AA", "B", "C", "#", "D"]

array[2...4] = ["CC","DD","EE"] //批量修改,数组赋给数组
array //["AA", "B", "CC", "DD", "EE"]

//遍历数组-1
for index in 0..<array.count
{
    print(array[index])
}
//遍历数组-2
for item in array
{
    print(item)
}

字典

  • 字典初始化

1、字典存储的数据是键和值的数据对
2、所存储的数据中,键和值可以是任意数据类型
3、一个字典只能存储固定一种键和值的数据类型搭配

//隐式声明
var dict = [1:"a",2:"b",3:"c"]

var site = ["search":"google","web":"mooc"]

//显式声明

var dict2:Dictionary<Int,String> = [1:"a",2:"b",3:"c"]
var site2:Dictionary<String,String> = ["search":"google","web":"mooc"]

var dict3 = Dictionary<Int,String>() //声明一个空字典

dict = Dictionary<Int,String>() //清空字典

dict = [:] //清空字典
  • 字典基本操作
var dict = [1:"a",2:"b",3:"c"]

var site = ["search":"google","web":"mooc"]
dict.count //返回数据对数
dict.isEmpty //是否空
//访问键值
dict[1] //"a"
site["search"] //"google"
dict[4] //nil
dict[0] = "0" //"0"
"seo:"+site["search"]! //"seo:google"

site.updateValue("imaginecode", forKey: "web")
site //["web": "imaginecode", "search": "google"]

//遍历key,value
for (key,value) in site
{
    print("\(key): \(value)")
}
//遍历key
for key in site.keys{
    print(key)
}
//遍历val
for val in site.values{
    print(val)
}

Array(site.keys) //强制类型转换 ["web", "search"]
  • 数组与字典在App中的应用

1、列表

示例: UIKit


import UIKit

let colors = [
    "blue":(red:93,green:138,blue:168),
    "sweet":(red:254,green:111,blue:94),
    "yellow":(red:255,green:239,blue:0),
    "orange":(red:255,green:140,blue:0),
    "violet":(red:143,green:0,blue:255),
    "fern":(red:113,green:188,blue:120),
    "gamboge":(red:228,green:155,blue:15),
    "cerise":(red:244,green:0,blue:161),
    "icterine":(red:252,green:247,blue:94),
    "jam":(red:165,green:11,blue:94)
]

//var backView = UIView(frame: CGRect(x:0, y:0, width: 320, height:colors.count * 50)
var backView = UIView(frame:CGRect(x: 0.0, y: 0.0, width: 320.0, height: CGFloat(colors.count * 50)) )
    
backView.backgroundColor = UIColor.black

var index = 0

for (colorName,rgbTuple)  in colors {
    var colorStripe = UILabel(frame: CGRect(x:0.0,y:CGFloat(index*50+5),width:320,height:40))
    colorStripe.backgroundColor = UIColor(red: CGFloat(rgbTuple.red/255), green: CGFloat(rgbTuple.green/255), blue: CGFloat(rgbTuple.blue/255), alpha: 1.0)
    
    var colorNameLabel = UILabel(frame: CGRect(x:0.0 ,y:0.0, width:320.0, height:40.0))
    colorNameLabel.font = UIFont(name: "Arial", size: 24.0)
    colorNameLabel.textAlignment = NSTextAlignment.right
    colorNameLabel.text = colorName
    colorStripe.addSubview(colorNameLabel)
    backView.addSubview(colorStripe)
    index+=1
}
3、Swift 3 与 Swift 4 的对比及基础使用入门 本文介绍了从 Swift 3 到 Swift 4 的主要变化,包括字符串改进、集合优化和序列化支持等。通过 Playground 环境帮助快速学习 Swift 基础知识,如变量与常量的使用、运算符操作以及数组、元组和字典三种集合类型的创建和管理。文章还提供了代码示例,综合运用所学内容,并给出了学习建议以提高学习效率。 阅读详情

相关推荐

超聚变安装银河麒麟服务器系统ky10-server-x86

超聚变-通过BMC口进服务器管理界面如下图为BMC管理口:默认BMC口IP:https://192.168.2.100l浏览器打开网页,输入用户名和密码登陆后,如下图红框处,选择“启动虚拟控制台”——选择“HTML集成远程控制台”系统银河麒麟服务器系统ky10 server x86选择镜像文件X86架构我们一般选择下图2212版本选择启动方式:光驱重启出现安装图形化界面选装安装系统的磁盘系统安装盘选完后如下图,会置灰创建root密码开始安装系统首次进入,有协议界面。

zengliguang的专栏 5958

swift Array(数组) Dictionary(字典)

数组 1、初始化一个空数组 我个人习惯于使用 Array.init() 初始化一个空字符串 2、初始化非空数组 并 遍历 PS :Any 表示数组中的元素可以是任意类型的元素 AnyObject表示对象类型,由于Str类型属于结构体类型,所以,此处不能使用AnyObject。 3、增加元素 1️⃣、在指定位置加入 在 第3位置加入一个元素 2️⃣、在结尾加入 4、删除元素 1️⃣、删除首...

weixin_43883776的博客 2353

DESeq2实战:如何用LRT检验分析基因表达随时间变化的模式(附完整代码)

本文详细介绍了如何使用DESeq2中的LRT检验分析基因表达随时间变化的模式,包括实验设计、数据预处理、模型构建、结果提取与可视化等完整流程。通过实战案例和完整代码,帮助生物信息学研究者掌握时间序列RNA-seq分析的核心技术,特别适合需要快速上手的实践者。

weixin_42620255的博客 465

Swift中文教程 -- 集合类型(Array,Dictionary)

Swift 提供两种集合类型来存储集合,数组和字典。数组是一个同类型的序列化列表集合。字典是一个能够使用类似于键的唯一标识符来获取值的非序列化集合。 在Swift中,数组和字典的键和值都必须明确它的类型。这意味这数组和字典不会插入一个错误的类型的值,以致于出错。这也意味着当你在数组和字典中取回数值的时候能够确定它的类型。 Swift 使用确定的集合类型可以保证代码工作是不会出错,和让你在开

xdRao的专栏 1842

Windows摄像头错误0xA00F4240根因与注册表修复指南

Windows摄像头错误码0xA00F4240常被误判为硬件故障,实则源于UWP应用模型下权限调用链断裂——核心是COM组件调用失败(HRESULT 0x80004003),本质反映Windows Runtime API对注册表策略键值(如CapabilityAccessManager\ConsentStore\webcam)的强依赖。该机制涉及服务状态、DWORD权限配置、ACL继承控制等多层校验,任一环节异常(如ValueLastModified时间戳损坏或ALL APPLICATION PACKAGE

weixin_31742871的博客 384

人工智能渗透测试:自动化安全评估

渗透测试认证的价值包括提高可信度和技能水平,并帮助客户确保由经过认证的个人对其系统进行全面的手动调查。B2B 交互变得越来越复杂,特别是功能丰富的超级应用程序,需要采取强有力的安全预防措施,而自动化渗透测试应用程序则是一种未被发现的武器。渗透测试中的人工智能通过提高效率、自动收集信息、发现隐藏的漏洞、开发个性化攻击和减少误报来提高 B2B 集成的安全性。这包括风险简报、补救建议和战略建议。渗透测试由五个阶段组成,是网络安全中的关键防御措施,它模拟现实世界的攻击,以识别系统缺陷并在漏洞被利用之前解决它们。

weixin_48967543的博客 2358

Swift的基本知识(2)— 数组与字典

Swift数组 定义数组: var myArray = [Int]() var myArray1 = [Int](repeating: 0, count: 10) 索引从 0 开始,即索引 0 对应第一个元素,索引 1 对应第二个元素,以此类推。 数组的添加: myArray.append(12) myArray += [13] myArray.append(14) ...

三岁牧羊的博客 675

Linux内存从0到1学习笔记(10.1 BugsShooter之cma配置过小导致页迁移繁忙而内存申请失败)

通过向武神讨教,顺便记录cma内存有空间但页繁忙(页正被访问,无法迁移)迁移不了导致cma内存分配失败的排查过程。

从0到1,突破自己 1万+

Swift学习笔记四:数组和字典

Swift 提供两种集合类型来存储集合,数组和字典。数组是一个同类型的序列化列表集合。字典是一个能够使用相似于键的唯一标识符来获取值的非序列化集合。也就是说数组是有序的。字典是无序的。一. 数组 和Objective-c中的NSArray不一样。swift的数组不仅能够包括对象...

weixin_30563917的博客 311

【华为OD技术面】 - 考到的Lettcode手撕算法代码真题目录

【华为OD技术面 - 考到的Lettcode手撕算法代码真题目录

算法大师! 7807

Qt项目开发实例 (含源码)

qt教程、qt项目、qt下载、qt项目实战、qt多线程。本文通过分析demo源码,QT实战的方式进行学习,学习路线是以实战为目录,全面的使用自己的学习知识,文章中编写一系列的学习游戏demo,与大家一起分享。

啊渊的专栏 14万+

swift菜鸟教程11-12(数组与字典)

存储无序的相同类型数据的集合Swift 字典每个值(value)都关联唯一的键(key),键作为字典中的这个值数据的标识符。

2301_80437645的博客 1795

自动分割和测量混凝土钢筋的思路与原理

该文提出了一种基于PCL库的点云处理系统,用于自动测量混凝土结构中钢筋的几何参数。系统采用多阶段处理流程:首先通过RANSAC算法提取地面并旋转对齐;接着使用区域生长算法分割混凝土结构;然后采用RANSAC线检测识别钢筋,按方向分类;最后通过圆柱拟合和坐标差计算获得钢筋间距、直径和高度差等参数。文章详细介绍了各模块的核心算法,包括地面检测、坐标变换、钢筋识别和几何计算等关键步骤,并分析了主要参数的敏感性。系统通过分层处理和坐标变换确保测量精度,为混凝土结构的无损检测提供了自动化解决方案。

weixin_45196569的博客 679

swift3新路程(4)数组和字典(array/dictionary)

var names = ["LiuMC","Ryoma"] var nameWithAge = ["LiuMC":27,"Ryoma":27] print(names) print(nameWithAge) 输出 ["LiuMC", "Ryoma"] ["LiuMC": 27, "Ryoma": 27] names是一个数组 nameWithAge是一个字

AppleEngineer 1092

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Swift数据类型之字符、字符、数组、字典

Swift 字符串 Swift 字符串是一系列字符的集合。例如 "Hello, World!" 这样的有序的字符类型的值的集合,它的数据类型为String。 创建字符串 你可以通过使用字符串字面量或 String 类的实例来创建一个字符串: import Cocoa // 使用字符串字面量 var stringA = "Hello, World!" print( stringA ) // String 实例化 var stringB = String("Hello, World!") pri.

u013712343的博客 2181

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Xcode 4.5 中的新语法

Xcode 4.5 开始,增加了如下新语法,可以让我们提高代码编写效率,减少击键次数。不过,这需要iOS 4.3+ 的支持。1、数组从 Xcode 4.5 开始,你可以这样使用下标来访问数组: id object = array[5]; 等于:id object = [array objectAtIndex:5]; 下标访问可变数组:mutableArray[5] = object; 等于:[mu

kmyhy的专栏 2946

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

swift资源库—3—字典/集合/数组

持续更新中,纯笔记记录哦~ 相关的代码需要的话,还请留邮箱,后续我会更新到github上~~ 这里是本人学习swift的系列文章,相关知识还请查看本人的其他文章 Swift语言提供Array、Set和Dictionary三种基本的集合类型用来存储集合数据。数组是有序的数据集;集合是无序无重复的数据集;而字典是无序的键值对数组集。 Swift的Array、Set和Dictionary类型被实现为泛型集合。因此,它所存储的元素的类

Kiven's Program Space 4316

swift数组与字典

//数组 /** 数组(Array)是一串有序的由相同类型元素构成的集合。数组中的集合元素是有序的,可以重复出现。 */ var array1 = ["324","fssd","rwer"];//直接创建 var array2 : [String] = ["rfs","we"];//创建时声明数组元素类型 var array3 : ArrayString>;

NickQCX的博客 866

swift集合类型——数组和字典

Swift 语言提供了数组和字典两种集合类型来存储集合数据。数组用来按顺序存储相同类型的数据。字典则是以无序的方式来存储键值对(key,value)。数组和字典都是强类型的,也就意味着,数组和字典在声明时必须指明类型。 本篇博客我们来分别讨论swift中的数组和字典

朱登凯的专栏 1338

无涯教程-Swift - 字典(Dict)

Swift 4 字典用于存储相同类型的无序值列表。Swift 4字典使用称为 key 的唯一标识符来存储一个值,该值以后可以被引用并通过同一键进行查找。与数组中的元素不同,字典中的元素没有指定的顺序,当您需要根据其标识符查找值时,可以使用字典。

无涯教程 1350

Swift-4-数组和字典

// Playground - noun: a place where people can play import UIKit // 数组 字典 // 集合的可变性 赋值给var的集合是可变的mutable,赋值给let的集合是不可变的immutable // 数组 Array<SomeType> 等价于 [SomeType] var shoppi...

anyixiao9286的博客 168

Swift中数组字典和plist文件的转换

Swift中数组字典和plist文件的转换 注意: Swfit中的Array和Dictionary是结构体,是值类型, 没有与plist相关的接口, 需要先转换为对应的Objectivc-C类型 1. Array转为plist文件(Dictionary类型同理) // 可能会使用到的接口 1. `Swift`高阶函数`map`(业务代码中的数组元素往往为对象类型, 需要先转换为字典类型, 此处强烈推荐使用高阶函数`map`); 2. `as`转换, 不是`as?`, 也不是`as!`(若原始数据为`A

侯仕奇的博客 1497

【Swift初见】Swift字典

顾名思义,当我们查字典的时候,我们会根据索引去查找我们需要查找的资源,在swift中也是如此,字典的每一个对象都包含一个key和一个value,我们通过key去查找当前这个key所对应的value,与数组不同的是字典中的数据项在字典中没有具体的存储顺序。 和Swift中数组类似的,在Swift可变字典与不可变字典仅仅通过let和var的定义来区分,而在OC中是通过NSDictionary和N

weasleyqi的专栏 1万+

swift中数组和字典的创建,使用,遍历

这里是数组的使用 创建一个指定类型以及指定默认值和数组大小的数组,这里是不可变数组的使用 var someInts = [Int](repeating: 0, count: 3)//创建一个指定类型以及指定默认值和数组大小的数组 print(someInts)//0 0 0 someInts[0] = 1; ...

weixin_30363509的博客 637

Swift语言的字典

字典在Swift中被定义为,其中Key表示字典的键的类型,Value表示值的类型。字典的键必须是唯一的,而且键的类型是可哈希的(conform to Hashable协议),这保证了能够快速地通过键查找对应的值。

2501_91366685的博客 1047
上一篇: 【scikit-learn 估计器】 距离方法
下一篇: 【Swift4】(4) 控制流 for | switch | if-else
蟹蟹蟹风流
蟹蟹蟹风流 优质创作者: 编程框架技术领域 优质创作者: 编程框架技术领域 领域专家: 前端开发技术领域 领域专家: 前端开发技术领域
博客等级 码龄11年 3万+粉丝 396原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蟹蟹蟹风流

期望和你分享一杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值