Swift 的 size 方法采用 Int 的理由是什么?

2023-11-23

我注意到很多快速的内置函数接受或返回Int是而不是UInts:

以下是一些示例Array:

mutating func reserveCapacity(minimumCapacity: Int)

var capacity: Int { get }

init(count: Int, repeatedValue: T)

mutating func removeAtIndex(index: Int) -> T

鉴于该语言是全新的,并且假设这种设计选择不是任意的 - 我想知道:为什么 swift 内置函数需要Int是而不是UInts?

一些注释:之所以问这个问题,是因为我自己正在开发一些集合,我想知道我应该使用什么类型来处理类似的事情reserveCapacity等等我自然期望的是reserveCapacity采取UInt反而。


UInt是错误的常见原因。很容易意外生成 -1 并导致无限循环或类似问题。 (许多 C 和 C++ 程序员都经历了惨痛的教训,你真的应该使用int除非有需要unsigned.) 由于 Swift 管理类型转换的方式,这一点更加重要。如果您曾经与NSUInteger打开“有符号到无符号”警告(这是 Swift 中的错误,而不是像 C 中那样的可选警告),您知道那是多么痛苦。

Swift 编程指南在以下部分解释了它们的具体原理UInt:

NOTE

仅当您特别需要大小与平台本机字大小相同的无符号整数类型时才使用 UInt。如果不是这种情况,则首选 Int,即使要存储的值已知为非负数。对整数值一致使用 Int 有助于代码互操作性,避免在不同数字类型之间进行转换,并匹配整数类型推断,如类型安全和类型推断中所述。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift 的 size 方法采用 Int 的理由是什么? 的相关文章

  • Firebase获取孩子ID swift ios

    我的 Firebase 看起来像这样 贝娄Active Orders看来childs根据他们的不同有不同的名字UID 用户身份 这是我的代码 用于获取孩子的 ID 无论孩子的名字是什么 但它似乎根本不起作用 获得的正确方法是什么child
  • 如何求一个值的n次方根?

    在 Swift 中 找到一个值的 n 次根的最简单方法是什么 我们知道数字 x 的 N 次方根相当于 x 的 N 倒数次幂 知道了这一点 我们可以使用pow求 N 次方根的函数 let nthRoot pow base 1 n where
  • Swift 中符合协议的泛型类型

    是否可以要求泛型类型的特定实例符合 Swift 中的协议 例如 假设我有一个名为的泛型类型Thing
  • 如何在 Swift Joint 中创建自定义链?

    我正在尝试创建一个LocationManager组合的包装 我有一个发布者和一些触发发布者的函数 但是 我想将它们与自定义命令组合在一起 这是我到目前为止得到的 available OSX 10 15 iOS 13 tvOS 13 watc
  • swift 中 pch 的替代品是什么?

    我想知道可以用什么来代替 swift 中的 pch 有没有 pch 的替代方案或方法可以快速摆脱导入 这样我们就不需要对所有类都这样做 我不想一直随身携带 进口 swift 中 pch 的最佳替代品是什么 您无法在 swift 中定义 宏
  • 使用 firebase 过滤分页列表

    我正在尝试使用 firebase 和 swift 制作一个分页过滤列表 但请随意用您最喜欢的编程语言回答 而不过滤客户端上检索到的数据 假设我有这个结构 matches match 1 name Match 1 users user 1 o
  • Swift:如何让游戏中的角色只有落地后才能跳跃?

    我正在开发一款游戏 我的角色可以从一个陆地跳到另一个陆地 我已经把所有事情都做好了 除了我剩下的问题是 如果你继续点击屏幕 他可以永远跳跃 我希望他必须先落地才能再次跳跃 import SpriteKit import GameplayKi
  • Swift 语言中的 #ifdef 替换

    在 C C Objective C 中 您可以使用编译器预处理器定义宏 此外 您可以使用编译器预处理器包含 排除代码的某些部分 ifdef DEBUG Debug only code endif Swift 中有类似的解决方案吗 是的 你可
  • 从字典创建 Swift 对象

    如何根据 Swift 字典中的查找值动态实例化类型 希望这对其他人有用 我们需要进行一些研究才能弄清楚这一点 目标是避免巨大的 if 或 switch 语句从值创建每个对象类型的反模式 class NamedItem CustomStrin
  • 使用未声明的类型“对象”

    这太奇怪了 通常我可以理解未声明的类 但这是声称 Object 类本身未声明 NSObject 可以工作 但我的项目设置方式我需要它是一个纯 Swift 对象 我的类标题如下所示 import UIKit import Foundation
  • 如何在 SwiftUI 中延迟动画?

    我想为两个文本字段设置动画 第二个字段有延迟 但它不起作用 没有延迟 它们同时从位置 100 动画到 0 这是代码 State private var offset CGFloat 100 State private var offset2
  • 如何在 iOS swift 中集成 Google Pay?

    嗨 朋友们 我搜索过有关 iOS swift 中谷歌支付集成的信息 我没有找到任何相关的解决方案 请帮助我如何解决这个问题 如果有任何链接或示例 请提供链接并指导我 谢谢 这是关于在印度发起 Google Pay 操作的问题吗 例如 使用
  • SwiftUI 导航:如何将详细信息视图切换到不同的项目?

    我正在努力实现以下导航行为 用户可以从列表中选择一个项目 该项目会触发该项目的详细信息视图 在此详细视图上 导航栏中有一个 添加 按钮 可打开用于添加其他项目的模式表 到目前为止 一切都按预期进行 但添加项目后 我希望详细视图显示新项目 我
  • 当 tableview 滚动时 UISegment 值发生变化

    我正在使用 UISegmentControl 在表格视图中显示客观类型问题 但是 如果我在任一单元格中选择一个段 那么如果我滚动 某些段值就会发生更改 我不知道如何解决这个问题 请指导我 细胞尺寸 160px 段色调颜色 蓝色 Coding
  • 领域列表未存储在 Swift 4.2 的发布配置中

    我刚刚构建了我的应用程序的最新版本 并且遇到了一个问题List我的所有领域对象上的 s 都没有被存储 这是一些示例代码 Object public class ReportItem Object objc dynamic var id St
  • 如何在 Swift 中退出“DispatchQueue.main.asyncAfter”

    我想在调用 deinit 时退出 DispatchQueue main asyncAfter 子视图 swift DispatchQueue main asyncAfter deadline now 5 0 self doSomething
  • 如何更改某些功能以兼容 iOS 10 或更低版本的 Snapchat 中的某些功能,例如相机视图控制器

    我正在制作一个视图控制器来制作像 snapchat 相机一样的相机视图控制器 我下面的代码在 iOS 11 或更高版本上完美运行 老实说 我并没有真正掌握我的代码 因为我只是按照这个像相机视图控制器这样的 snapchat 的教程进行操作
  • 以编程方式进行排序时检索 ViewController 堆栈

    static func showMenuView parentVC UIViewController let storyboard UIStoryboard name Main bundle nil let resultController
  • iOS swift 应用程序启动时出现黑屏

    我有个问题 当我启动我的应用程序时 会看到黑屏几秒钟 然后出现启动屏幕 我的启动画面不是默认的 我使用了视图控制器 因为我的启动画面有一个动画 我搜索了一个解决方案 我得到了这个 在我的闪屏加载 iPhone 之前出现黑屏 https st
  • 无法在 Swift 中获取 plist URL

    我对这个真的很困惑 网络上有很多问题询问 如何从 Swift 中的 plist 文件获取信息 并且到处都发布了相同的答案 let path NSBundle mainBundle pathForResource Config ofType

随机推荐

  • GHCi 中的功能非详尽模式

    我想创建一个显示列表最后一个元素的函数 这是我的代码 ghci gt let myLast a gt a ghci gt let myLast error ghci gt let myLast x x ghci gt let myLast
  • “重新打开上次关闭的选项卡”导致显示上次 ajax 请求内容

    我正在使用 HTML 5 历史 api 在 ajax 请求发生时保存状态 并且如果用户请求没有 ajax 请求的同一页面 我会提供完整的 html 内容 浏览器的 重新打开最后关闭的选项卡 功能会带来最后的 ajax 请求内容 而无需访问服
  • 为什么错误处理在 Nodemailer 中不起作用?

    我正在尝试使用 nodemailer 设置一个非常简单的联系表单 它工作正常 但我的问题是它不处理错误 如果引发错误 页面应该重定向 但重定向不会发生并且应用程序停止运行 我一生都无法弄清楚为什么会发生这种情况 这是我的代码 if req
  • d3.js:有限制的平移

    我正在研究具有平移功能的基本线性图表 我设法通过限制图表元素的拖动范围d3 event translate values var tx Math max 0 d3 event translate 0 ty Math min 0 d3 eve
  • 创建 Hermetic Maven 构建

    我正在尝试创建一种可以实现密封构建的方法 同时仍然依赖于项目中的 SNAPSHOT 依赖项 出于示例的目的 假设我有一个项目 其依赖结构如下 other 1 2 SNAPSHOT mine 1 2 3 thing 3 1 SNAPSHOT
  • 在 PyQT5 中创建自定义小部件

    我想知道如何在 pyqt 中创建自定义小部件 我见过许多不同的 C 示例 以及一些 pyqt 的非描述性示例 但没有任何内容真正解释如何执行和实现它 特别是没有任何示例基本上不仅仅是修改后的 qt designer 输出 而且我正在从头开始
  • 如何从 HttpClient 响应访问标头? (角/离子)

    我使用的登录端点返回不记名令牌作为响应标头 正如我在 网络 Chrome 检查窗口中看到的那样 Response Headers Access Control Allow Credentials true Access Control Al
  • 向 TIdHttp 请求添加自定义标头,标头值包含逗号

    我正在使用 Delphi XE2 和 Indy 10 5 8 0 我有一个 TIdHttp 实例 我需要向请求添加自定义标头 标头值中包含逗号 因此它会自动解析为多个标头 我不希望它这样做 我需要自定义标头的标头值仍然是一个字符串 而不是根
  • 在基于Web的Spring范围中使用Thymeleaf处理HTML文件并将处理后的模板存储为字符串

    我正在尝试使用 thymeleaf 渲染 HTML 文件 并将生成的 HTML 内容保存在 String 变量中web based scopes of Spring这样我以后就可以用它来发送电子邮件或将内容转换为 pdf 我已经完成了中给出
  • 查找字符串中最短的重复模式

    我想知道是否有办法在 Octave Matlab 中进行模式匹配 我知道 Maple 10 有执行此操作的命令 但不确定我需要在 Octave Matlab 中做什么 所以如果一个数字是12341234123412341234模式匹配将是1
  • 为什么 &[T] 参数也接受 &Vec

    我正在阅读 Rust 书 即迷你grep项目 在那里我遇到了以下片段 fn main let args Vec
  • 计算文件中单词数的最简单方法

    我正在尝试以最简单的方式编写一个程序来计算 Scala 语言文件中单词出现的次数 到目前为止我有这些代码 import scala io Codec string2codec import scala io Source import sc
  • 在遍历表达式时提取实例变量的当前值

    我目前正在尝试编写一些将 C 表达式转换为文本的代码 为此 我不仅需要遍历表达式树 还需要评估其中的一小部分 以获得局部变量的当前值 我发现很难用语言来表达 所以这里是伪代码 缺少的部分在第一种方法中 public class Progra
  • 如何将时间戳转换为可读的日期/时间?

    我有一个 APIresult像这样给出时间戳1447804800000 如何使用 Javascript jQuery 将其转换为可读格式 您可以使用以下命令将其转换为可读日期new Date method 如果有特定的日期戳 可以通过以下方
  • 我应该如何理解 dis.dis 的输出?

    我想了解如何使用dis Python字节码的反汇编器 具体来说 应该如何解释输出dis dis or dis disassemble 这是一个非常具体的示例 在 Python 2 7 3 中 dis dis heapq nsmallest
  • 克隆整个对象图

    使用此代码序列化对象时 public object Clone var serializer new DataContractSerializer GetType using var ms new System IO MemoryStrea
  • (Hadoop) MapReduce - 链作业 - JobControl 不会停止

    我需要链接两个 MapReduce 作业 我使用 JobControl 将 job2 设置为依赖于 job1 它有效 输出文件已创建 但它并没有停止 在 shell 中它保持这种状态 12 09 11 19 06 24 WARN mapre
  • Windows 中的 GetDesktopWindow 和 OpenInputDesktop API 有什么区别?

    两者的用法有什么区别GetDesktopWindow and OpenInputDesktopWindows 中的 API 至于他们做什么 GetDesktopWindow 返回 根 HWND调用线程当前与哪个桌面关联 也许更好的想法是 扎
  • 冒充用户名和密码?

    WindowsIdentity identity new WindowsIdentity accessToken WindowsImpersonationContext context identity Impersonate contex
  • Swift 的 size 方法采用 Int 的理由是什么?

    我注意到很多快速的内置函数接受或返回Int是而不是UInts 以下是一些示例Array mutating func reserveCapacity minimumCapacity Int var capacity Int get init