从数组中删除闭包

2024-02-19

从数组中删除闭包但不使用它会导致编译器错误“表达式解析为未使用的函数”。除了将函数分配给一次性变量之外,是否有好的方法可以避免这种情况?

typealias StringFunction = () -> String  
var list = [StringFunction]()            
list.append({ "Hello World!" })          
let hi = list[0]()                       // "Hello World!"
list.removeAtIndex(0)                    // Expression resolves to an unused function
let _ = list.removeAtIndex(0)            // Works

将表达式的结果分配给一次性变量is正确的方法是这样做。事实上,这是 Swift 中处理未使用结果的惯用方法。

因此(如另一个答案的评论中所述)正确的解决方案是:

typealias StringFunction = () -> String
var list = [StringFunction]()
list.append({ "Hello World!" })
let hi = list[0]()
_ = list.remove(at: 0) // Note there's no need for `let`

这样做不仅可以使您的代码更清楚地了解您的意图(即,它表明您绝对不需要该方法的结果),而且还可以帮助编译器执行各种有用的优化。

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

从数组中删除闭包 的相关文章

随机推荐

  • Laravel 5.4:如何获取本周的记录?

    为了获取当天的所有记录 我做了 dt Carbon now dataToday Data whereDay created at dt gt day gt get 为了获取本周的记录 我尝试了以下方法 但没有成功 dataThisWeek
  • Ansible win_package 永远卡住

    我正在使用 win package 模块在 Windows 2016 服务器中安装 Nessus 但每当我执行它时 它就会永远挂起而没有响应 即使等了一个小时 也没有任何回应 我已经将 Nessus 安装程序保存在 Windows 服务器目
  • 创建全景视图android

    我想在 Android 中创建一个视图 屏幕 活动 其中的表格包含十列 由于 10 列不会在屏幕中调整宽度 不会采用可读格式 因此我一次显示 3 列 我想在应用程序中集成一个功能 如果用户在桌子上从右向左滑动 滑动 其他 3 4 列应该可见
  • 如何在网格视图中隐藏空列而不知道哪些列是空的?

    我正在使用一个 gridview 它根据下拉列表中的选择从 SQL 数据库中提取数据 源表有六列用于选择的属性 但根据选择的内容 可能会有一到六列为空 全部为空值 当该列为空时 我希望将其隐藏 以便页面不那么笨重和混乱 在过去的几天里 我一
  • 如何在 Debian Linux 系统上以非 root 身份安装 h5py (+numpy+libhdf5+...)

    我需要在 Debian Linux 系统上安装 h5py Python 模块及其所有缺少的依赖项 这项任务因以下原因而变得复杂 我在这个系统上没有任何超级用户权限 没有 sudo 没有 root 密码等 我使用的其余代码需要 Python
  • 生成 .p12 文件时没有证书与私钥匹配

    我已经成功生成了 p12文件 但我收到一条消息 如下所示 C OpenSSL Win32 bin gt openssl pkcs12 export inkey mykey key in exported pem out myfile p12
  • Xamarin.form 键盘出现时向上移动视图

    我正在尝试构建一个聊天应用程序用户界面 布局的想法非常简单 当输入栏获得焦点时 键盘会显示并 推 聊天栏 因为它是一个网格 ListView 将调整大小以适合屏幕 我更新输入栏的边距以 推 它 NSValue result NSValue
  • Qt Creator 需要设置编译器才能构建。在套件选项中配置编译器

    我已经安装了 Qt Creator5 和最新的二进制文件 但是当我运行任何程序时 它会给我这个错误 1 错误 Qt Creator 需要设置编译器才能构建 在套件选项中配置编译器 我已经在整个互联网上搜索了答案 但它不够充分并且没有帮助 请
  • icp变换矩阵解释

    我正在使用 PCL 从 ICP 获取变换矩阵 getTransformationMatrix 例如 对于没有旋转的平移运动获得的结果是 0 999998 0 000361048 0 00223594 0 00763852 0 0003605
  • 根据 nodemon 中的更改运行脚本

    是否可以使用nodemon在更改时运行脚本 是否可以做这样的事情 nodemon watch src exec yarn run my script 因此 理想情况下 我只想在发生更改时才运行脚本src folder 只需在要执行的脚本周围
  • 抑制 tbl_regression 中的置信区间脚注

    我正在使用 gtsummary 包中的 tbl regression 当从线性回归生成输出表时 有一个1CI 置信区间脚注出现在底行 有没有办法在 tbl regression 中抑制这个脚注 Use modify footnote eve
  • ::first-letter 也设置第一个字符的样式

    我有这样的文字 p first letter color red p Welcome p 但后来我意识到 定型了 我尝试使用 before但这也不起作用 p first letter color red p before content p
  • 如何合并两个 Eloquent 集合?

    我有一个问题表和一个标签表 我想从给定问题的标签中获取所有问题 例如 我可能会将 旅行 火车 和 文化 标签附加到给定的问题上 我希望能够获取这三个标签的所有问题 看起来棘手的是 问题和标签关系是多对多 在 Eloquent 中定义为 be
  • 在 iOS 中检测井号标签 #、提及标签 @,就像在 Twitter 应用程序中一样

    我需要检测 Tags描述中给出UILabel并将文本颜色更改为 UIColor BlueColor 我无法更改其中的特定文本颜色UILabel到蓝色 现在我正在使用这个UILabel在定制中UITableViewCell 有什么办法可以解决
  • 如果 Chrome 和 Safari 都使用 Webkit,我是否还需要在它们中测试渲染?

    尽管 Chrome 和 Safari 浏览器都实现了 Webkit 渲染引擎 但是否有必要在这两种浏览器中测试我的网站的渲染 这是开发商的逃避还是一个合理的假设 我特别询问我的网站页面在两种浏览器中是否呈现相同的效果以及我的 Javascr
  • 线程“main”中的异常 java.lang.NumberFormatException:不是版本:9

    我正在尝试运行一个Spark 专家 Scala https github com opencypher caps examples日食中的项目 当我跑步时scala 类 https github com opencypher caps ex
  • 为什么 Python 的 itertools.permutations 包含重复项? (当原始列表有重复时)

    人们普遍认为 n 个列表distinct符号有 n 排列 然而 当符号不明确时 数学和其他领域最常见的约定似乎是仅计算不同的排列 因此列表的排列 1 1 2 通常被认为是 1 1 2 1 2 1 2 1 1 事实上 以下 C 代码准确地打印
  • 从 URL Laravel 5 中删除 index.php

    URL 在我的应用程序中运行良好 我的意思是它们都是漂亮的网址 喜欢http www example com http www example com 但当您使用以下命令访问页面时它也有效索引 php like http www examp
  • 如何使用 multipart/form-data 创建将 pdf 文件作为输入的 AWS Lambda/API gateway python 函数?

    我已经为此苦苦挣扎了一段时间了 我需要在 API 网关中创建一个链接到 lambda 函数的资源 该函数将 pdf 文件作为作为 multipart form data POST 请求发送的输入 为了简单起见 我现在只是返回文件 当我尝试使
  • 从数组中删除闭包

    从数组中删除闭包但不使用它会导致编译器错误 表达式解析为未使用的函数 除了将函数分配给一次性变量之外 是否有好的方法可以避免这种情况 typealias StringFunction gt String var list StringFun