当前位置: 首页 > 面试题库 >

我如何一步一步地进行Swift for-in循环?

白永昌
2023-03-14
问题内容

随着去除传统的C风格的for循环雨燕3.0的,我该怎么办下面?

for (i = 1; i < max; i+=2) {
    // Do something
}

在Python中,for-in控制流语句具有可选的step值:

for i in range(1, max, 2):
    # Do something

但是Swift范围运算符似乎没有等效项:

for i in 1..<max {
    // Do something
}

问题答案:

“步骤”的Swift同义词是“跨步”(stride)-
实际上是可跨步协议,由许多常见的数值类型实现。

等效于(i = 1; i < max; i+=2)

for i in stride(from: 1, to: max, by: 2) {
    // Do something
}

或者,要获取等价的i<=max,请使用through变体:

for i in stride(from: 1, through: max, by: 2) {
    // Do something
}

请注意,stride返回StrideTo/
StrideThrough,这符合Sequence,所以任何你可以用序列做,你可以用一个调用的结果做stride(即mapforEachfilter,等)。例如:

stride(from: 1, to: max, by: 2).forEach { i in
    // Do something
}


 类似资料:
  • 我想对一个网站进行压力测试。主要目的是在并发用户数和命中视频数/秒(RPS)方面找到性能下降点。 我使用了ultimate thread group,并将用户数量设置为200,加速时间为200秒。我已经为终极线程组添加了吞吐量整形计时器,并将每秒请求数设置为8。(如果我每秒钟只有一次采样器点击,那就控制得很好,是8次点击/秒。如果我有一个以上的采样器点击不受控制,他们甚至达到20,25,40等..

  • 我无法理解页面翻译机制。我保存在yml文件翻译中的特定语言的翻译可以通过两种方式获得: 在会话中保留当前选定的翻译 只有在什么时候语言才会改变?我创建了一个单独的控制器,使用GET将参数传递给该控制器,并在控制器中执行代码? 为了不在任何控制器中编写相同的代码,我应该有一个只更改语言并将页面返回到上一个页面的控制器。仅通过重定向返回到上一页不会使用新语言传递请求,只有文档中给出的类使用默认语言。

  • 我们希望,之前的章节对于如何构建一个 Meteor 应用,给了你一个良好的概述。但是,现在还要去哪里学习呢? 额外章节 首先,如果你还没有购买本书的话,可以购买 Full 或 Premium 版本来阅读本书额外的章节。这些章节将引导你深入真实场景,比如为应用建立 API,与第三方服务集成并迁移数据。 Meteor 手册 除了官方 文档,Meteor 手册 挖掘了更深度的特定主题,比如 Tracke

  • 先创建规范 在 NEI 平台 上点击“工程规范 -> 新建规范”,输入规范名称,比如 TodoSpec,点击“保存” 点击“工程结构”,新建一个文件,文件名为 ``,在右边选择“数据模型列表填充” 将 JavaBean 文件的示例模板中的内容复制到新创建的文件内容中 然后创建工程 点击“项目管理”,在某个项目组下创建一个项目,比如 TodoWeb 在刚才创建的 TodoWeb 项目下,点击“资源管

  • SQLAlchemy 1.4 / 2.0 Tutorial 此页是 SQLAlchemy 1.4/2.0教程 . 上一页: 使用相关对象 进一步阅读 下面的部分是主要的顶层部分,它们将更详细地讨论本教程中的概念,并描述每个子系统的更多特性。 核心基本参考 使用引擎和接头 模式定义语言 SQL语句和表达式API 列和数据类型 ORM基本参考 映射器配置 关系配置 使用会话 查询数据,加载对象