Scala - “for-yield”子句在某些条件下可以不产生任何结果吗?

2024-02-21

在 Scala 语言中,我想编写一个函数,在给定范围内生成奇数。该函数在迭代偶数时打印一些日志。该函数的第一个版本是:

def getOdds(N: Int): Traversable[Int] = {
  val list = new mutable.MutableList[Int]
  for (n <- 0 until N) {
    if (n % 2 == 1) {
      list += n
    } else {
      println("skip even number " + n)
    }
  }
  return list
}

如果我省略打印日志,实现就会变得非常简单:

def getOddsWithoutPrint(N: Int) =
  for (n <- 0 until N if (n % 2 == 1)) yield n

但是,我不想错过日志记录部分。如何更紧凑地重写第一个版本?如果能像这样重写就太好了:

def IWantToDoSomethingSimilar(N: Int) =
  for (n <- 0 until N) if (n % 2 == 1) yield n else println("skip even number " + n)

def IWantToDoSomethingSimilar(N: Int) = 
  for {
    n <- 0 until N
    if n % 2 != 0 || { println("skip even number " + n); false }
  } yield n

Using filter代替for不过表达会稍微简单一些。

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

Scala - “for-yield”子句在某些条件下可以不产生任何结果吗? 的相关文章

随机推荐

  • “HTTP.SYS 中的 URL 保留”是什么意思?

    无法理解这句话的意思 论坛上的人们互相建议在 HTTP sys 中保留 url 但这意味着什么呢 它是做什么用的 它是如何运作的 这一切都来自于 HttpWebRequest uac 问题 一些 Win32 API 和 NET 框架组件 例
  • 百度的echarts - 填充两行之间的空间

    我想找到一种在 ECharts 中绘制两条线并填充它们之间的空间的方法 如下所示 这样每条线都有自己的颜色 根据线条的顺序 区域填充为一种颜色或另一种颜色 见图 有本地方法吗 我发现有些人在提到extensions 但没有人提供任何关于如何
  • 无法将 undefined 或 null 转换为 Next.js 中的对象

    嘿 我正在使用 Next js 和 next auth 构建一个登录页面 我还在providers数组中写过 nextauth js 但是当我运行代码 如下所示 时 import getProviders signIn from next
  • 我可以在移动应用程序的 PKCE Flow 中使用授权码吗?

    我知道 OAuth 2 0 授权代码与 PKCE 流程是 OAuth 的最佳实践 我们计划将它用于我们的 WEB 应用程序 但我不明白如何在不使用浏览器进行身份验证的情况下将此流程用于我的移动应用程序的本机用户体验 https medium
  • read() 函数的返回值是什么类型?

    我想从二进制文件中读取前 188 个字节 并检查第一个字符是否为0x47 代码如下 import os fp open try ts rb for i in range 100 buf fp read 188 if buf 0 x47 pr
  • Azure Bot Framework 模拟器错误 - System.ArgumentNullException:值不能为 null

    我需要一些帮助 我是 Azure 机器人框架开发新手 几周前使用 QnA 知识库创建了我的第一个聊天机器人 无论如何 我设法在 Azure 门户中创建了机器人 并且它运行良好 但我需要在 Bot Framework Emulator 使用
  • 从四元数查看矩阵

    我目前正在构建自己的四元数相机 据我所知 您只需要一个四元数即可完全指定相机的方向 如果我错了 请纠正我 那么 我将如何创建视图矩阵 顺便说一下 我使用 C 作为编程语言 任何帮助 将不胜感激 首先是一些注意事项 您会在网络上和有关该主题的
  • 如果一个 ViewController 中有两个 UITableView,一个带有自定义单元格引用,另一个是简单的,会怎么样?

    我正在尝试在一个 ViewController 中使用两个 UITableView 一个 UITableView 带有自定义单元格的引用 另一个很简单 我已经编写了这段代码 但它给了我控制错误可能会到达非 void 函数的末尾 所以给我建议
  • 如何在SQL中实现过滤系统?

    现在我计划在我的网站上添加一个过滤系统 例子 ID apple COLOR red TASTE sweet ORIGIN US ID mango COLOR yellow TASTE sweet ORIGIN MEXICO ID banan
  • 如何更改 powershell 脚本中哈希表列的标题

    我对 Powershell 脚本编写相当陌生 我正在编写一个 power shell 脚本 其中声明了一个哈希表 如下所示 a 1 b 2 my hash my hash Add a b 当我在 Powershell 中打印该表时 哈希表的
  • 在 Task.WhenAll 中执行多个任务时的 C# 线程

    如果在单个线程上执行以下操作 会发生什么 await Task WhenAll items select x gt SomeAsyncMethod x Where SomeAsyncMethod is defined like this w
  • 如果没有 EnableWebMvc,RequestMapping 如何工作?

    I see RequestMapping无需注释即可工作 EnableWebMvc在 Java 配置类级别 这看起来像 EnableWebMvc不再需要 谁能让我理解这里的流程 这是我的工作example显示简单的jsp页面使用弹簧4 1v
  • SLF4J错误:类加载器具有不同类型的类对象

    试图找出为什么我在 tomcat 日志中收到以下错误 Caused by java lang LinkageError loader constraint violation when resolving method org slf4j
  • Java堆中的constantPoolClass?

    我继承了一个 Java 小程序 一个实际的 它在运行大约 4 天后抛出 OutOfMemory 异常 小程序的性质使得人们确实会长时间打开它 运行近两天后 jmap histo 将顶部堆消费者显示为 num instances bytes
  • Numpy 二维移动平均线

    我有一个二维 numpy 数组 我想取每个条目最近的 n 个条目的平均值 就像在一维数组上取滑动平均值一样 最干净的方法是什么 这与应用类似的概念filter to an image 幸运的是 scipy ndimage filters h
  • 奇怪的 HttpClient 结果

    当尝试从 Hitbox API 获取数据时 我得到了一个奇怪的结果 对于一个 API 的命令 这种情况每次都会发生 而对于另一个 API 的命令 这种情况只是有时发生 结果或多或少是这样的 这是我得到的最后结果 u001f b 0 0 0
  • HTML5画布覆盖透明渐变

    我正在 HTML5 中创建一个颜色选择器 如下面的渐变 它由三个要素组成 纯红色背景色 必须可变 从下到上黑 透明渐变 从左到右白色透明渐变 我已经成功创建了单个渐变和单个颜色 但我不知道如何将纯色和两个渐变叠加在一起 我怎样才能做到这一点
  • 如何在两者之间建立一个具有拉取请求的公共/私有 git 存储库 [重复]

    这个问题在这里已经有答案了 我在 github 上有一个公共存储库 我组的每个用户都有一个它的分支 该政策是禁止直接提交到主存储库 所有更改都必须作为来自分叉的拉取请求进来 以便在合并到主存储库之前可以对其进行审查 鉴于有时我们开发的代码必
  • 在实体框架中映射选择存储过程

    我的场景 我将 Visual Studio 2010 与 Entity Framework 4 1 结合使用 我有一个包含许多表和许多存储过程的旧数据库 我正在使用 MVC 3 编写 ASP NET C 程序 我采用了使用 ADO NET
  • Scala - “for-yield”子句在某些条件下可以不产生任何结果吗?

    在 Scala 语言中 我想编写一个函数 在给定范围内生成奇数 该函数在迭代偶数时打印一些日志 该函数的第一个版本是 def getOdds N Int Traversable Int val list new mutable Mutabl