Swift在线运行

版本:
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
以下是用户最新保存的代码
找出多个数组中的最大数字 发布于:2023-09-22 17:22 实验五 Swift枚举&协议&扩展&泛 发布于:2023-09-20 18:41 swift输入输出类型 发布于:2023-09-13 13:38 实验四 函数类型 发布于:2023-09-17 13:17 斐波那契数列的动态规划和递归形式 发布于:2023-09-11 14:09 day03 数组,集合,字典,字符串 发布于:2023-09-11 11:45 实验三,数组 发布于:2023-09-17 12:58 Swift运算符&控制流 发布于:2023-09-06 16:06 实验二 Swift运算符&控制流 发布于:2023-09-10 17:00 day01实验1 发布于:2023-09-05 15:27 实验一 Swift编程步骤&数据类型 发布于:2023-09-10 17:00 swift json decode 发布于:2023-08-25 11:10 get set 语法 发布于:2023-08-02 14:42 6-照片获取/拍摄 发布于:2023-06-30 19:23 5-视频教程生成 发布于:2023-06-30 19:16 2-物体识别 & 2D渲染(可后续优化为3D) 发布于:2023-06-30 19:06 1-AR互动小游戏 发布于:2023-06-30 18:44 AR基础功能函数 发布于:2023-06-30 18:15 day1-基础知识学习 发布于:2023-06-30 15:46 # swift测试学习 在这里将快速实现Swift的所有基本功能,并读懂更上一层的代码库 发布于:2023-06-21 15:04 Swift初尝试 发布于:2023-06-20 15:37 试用本系统 发布于:2023-06-14 12:16 车型识别的实现 发布于:2023-06-09 15:27 IOS第三章 发布于:2023-06-09 14:58 相册图片的显示 发布于:2023-06-09 14:54 车型识别能力的调用 发布于:2023-06-09 14:45 IOS第四章 发布于:2023-06-09 14:55 服务器设置和文件上传 发布于:2023-06-09 14:10 UILSession的用法 发布于:2023-06-09 13:59 数据JSON解析实例 发布于:2023-06-09 13:44 IOS第六章 发布于:2023-06-09 20:17 奏响乐队的凯歌 发布于:2023-06-09 13:18 五角星的绘制 发布于:2023-06-09 12:07 IOS第六章 发布于:2023-06-09 12:32 IOS第六章 发布于:2023-06-09 10:04 第六章争做车型识别达人 发布于:2023-06-09 09:59 六zxcc 发布于:2023-06-09 09:58 ios 第六章 发布于:2023-06-09 09:53 ios第五章 发布于:2023-06-09 09:59 第五章全部 发布于:2023-06-09 09:51 ios 第五章 发布于:2023-06-09 09:52 ios第三章 发布于:2023-06-09 09:50 ios 第四章 发布于:2023-06-09 09:50 第六章代码 发布于:2023-06-09 09:49 第六章代码 发布于:2023-06-09 09:48 4.2.5游戏提示和关卡1.游戏提示 发布于:2023-06-09 09:47 第五章代码 发布于:2023-06-09 09:46 第四章全部 发布于:2023-06-09 09:46 第四章代码 发布于:2023-06-09 09:44 第四章代码 发布于:2023-06-09 09:44 [更多]
显示目录

字典



Swift 字典

Swift 字典用来存储无序的相同类型数据的集合,Swift 数组会强制检测元素的类型,如果类型不同则会报错。

Swift 字典每个值(value)都关联唯一的键(key),键作为字典中的这个值数据的标识符。

和数组中的数据项不同,字典中的数据项并没有具体顺序。我们在需要通过标识符(键)访问数据的时候使用字典,这种方法很大程度上和我们在现实世界中使用字典查字义的方法一样。

Swift 字典的key没有类型限制可以是整型或字符串,但必须是唯一的。

如果创建一个字典,并赋值给一个变量,则创建的字典就是可以修改的。这意味着在创建字典后,可以通过添加、删除、修改的方式改变字典里的项目。如果将一个字典赋值给常量,字典就不可修改,并且字典的大小和内容都不可以修改。


创建字典

我们可以使用以下语法来创建一个特定类型的空字典:

var someDict =  [KeyType: ValueType]()

以下是创建一个空字典,键的类型为 Int,值的类型为 String 的简单语法:

var someDict = [Int: String]()

以下为创建一个字典的实例:

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

访问字典

我们可以根据字典的索引来访问数组的元素,语法如下:

var someVar = someDict[key]

我们可以通过以下实例来学习如何创建,初始化,访问字典:

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

var someVar = someDict[1]

print( "key = 1 的值为 \(someVar)" )
print( "key = 2 的值为 \(someDict[2])" )
print( "key = 3 的值为 \(someDict[3])" )

以上程序执行输出结果为:

key = 1 的值为 Optional("One")
key = 2 的值为 Optional("Two")
key = 3 的值为 Optional("Three")

修改字典

我们可以使用 updateValue(forKey:) 增加或更新字典的内容。如果 key 不存在,则添加值,如果存在则修改 key 对应的值。updateValue(_:forKey:)方法返回Optional值。实例如下:

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

var oldVal = someDict.updateValue("One 新的值", forKey: 1)

var someVar = someDict[1]

print( "key = 1 旧的值 \(oldVal)" )
print( "key = 1 的值为 \(someVar)" )
print( "key = 2 的值为 \(someDict[2])" )
print( "key = 3 的值为 \(someDict[3])" )

以上程序执行输出结果为:

key = 1 旧的值 Optional("One")
key = 1 的值为 Optional("One 新的值")
key = 2 的值为 Optional("Two")
key = 3 的值为 Optional("Three")

你也可以通过指定的 key 来修改字典的值,如下所示:

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

var oldVal = someDict[1]
someDict[1] = "One 新的值"
var someVar = someDict[1]

print( "key = 1 旧的值 \(oldVal)" )
print( "key = 1 的值为 \(someVar)" )
print( "key = 2 的值为 \(someDict[2])" )
print( "key = 3 的值为 \(someDict[3])" )

以上程序执行输出结果为:

key = 1 旧的值 Optional("One")
key = 1 的值为 Optional("One 新的值")
key = 2 的值为 Optional("Two")
key = 3 的值为 Optional("Three")

移除 Key-Value 对

我们可以使用 removeValueForKey() 方法来移除字典 key-value 对。如果 key 存在该方法返回移除的值,如果不存在返回 nil 。实例如下:

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

var removedValue = someDict.removeValueForKey(2)

print( "key = 1 的值为 \(someDict[1])" )
print( "key = 2 的值为 \(someDict[2])" )
print( "key = 3 的值为 \(someDict[3])" )

以上程序执行输出结果为:

key = 1 的值为 Optional("One")
key = 2 的值为 nil
key = 3 的值为 Optional("Three")

你也可以通过指定键的值为 nil 来移除 key-value(键-值)对。实例如下:

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

someDict[2] = nil

print( "key = 1 的值为 \(someDict[1])" )
print( "key = 2 的值为 \(someDict[2])" )
print( "key = 3 的值为 \(someDict[3])" )

以上程序执行输出结果为:

key = 1 的值为 Optional("One")
key = 2 的值为 nil
key = 3 的值为 Optional("Three")

遍历字典

我们可以使用 for-in 循环来遍历某个字典中的键值对。实例如下:

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

for (key, value) in someDict {
   print("字典 key \(key) -  字典 value \(value)")
}

以上程序执行输出结果为:

字典 key 2 -  字典 value Two
字典 key 3 -  字典 value Three
字典 key 1 -  字典 value One

我们也可以使用enumerate()方法来进行字典遍历,返回的是字典的索引及 (key, value) 对,实例如下:

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

for (key, value) in someDict.enumerate() {
    print("字典 key \(key) -  字典 (key, value) 对 \(value)")
}

以上程序执行输出结果为:

字典 key 0 -  字典 (key, value) 对 (2, "Two")
字典 key 1 -  字典 (key, value) 对 (3, "Three")
字典 key 2 -  字典 (key, value) 对 (1, "One")

字典转换为数组

你可以提取字典的键值(key-value)对,并转换为独立的数组。实例如下:

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

let dictKeys = [Int](someDict.keys)
let dictValues = [String](someDict.values)

print("输出字典的键(key)")

for (key) in dictKeys {
    print("\(key)")
}

print("输出字典的值(value)")

for (value) in dictValues {
    print("\(value)")
}

以上程序执行输出结果为:

输出字典的键(key)
2
3
1
输出字典的值(value)
Two
Three
One

count 属性

我们可以使用只读的 count 属性来计算字典有多少个键值对:

import Cocoa

var someDict1:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
var someDict2:[Int:String] = [4:"Four", 5:"Five"]

print("someDict1 含有 \(someDict1.count) 个键值对")
print("someDict2 含有 \(someDict2.count) 个键值对")

以上程序执行输出结果为:

someDict1 含有 3 个键值对
someDict2 含有 2 个键值对

isEmpty 属性

Y我们可以通过只读属性 isEmpty 来判断字典是否为空,返回布尔值:

import Cocoa

var someDict1:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
var someDict2:[Int:String] = [4:"Four", 5:"Five"]
var someDict3:[Int:String] = [Int:String]()

print("someDict1 = \(someDict1.isEmpty)")
print("someDict2 = \(someDict2.isEmpty)")
print("someDict3 = \(someDict3.isEmpty)")

以上程序执行输出结果为:

someDict1 = false
someDict2 = false
someDict3 = true
由JSRUN为你提供的Swift在线运行、在线编译工具
        JSRUN提供的Swift 在线运行,Swift 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。