当前位置: 首页 > 知识库问答 >
问题:

这段代码的含义是什么?[重复]

武向文
2023-03-14

我正在学习Scala语言,我不明白这段代码:

for {
  i <- Set(2,3)
  j <- 1 to i
  k <- i to 2 by -1
} yield (j,k)

iSet时,j是从1到i的范围是什么意思?

共有1个答案

濮阳景天
2023-03-14

我建议你阅读关于for-comprehensive和/或SO:与for-comprehensive到flatMap/Map转换混淆的答案的Scala文档

您提供的代码严格等同于以下代码:

Set(2,3)
  .flatMap { i => 
    (1 to i).flatMap { j =>
      (i to 2 by -1).map { k =>
        (j,k)
      }
    }
  }

这样,您应该更好地看到 i集合中的“项目”。

 类似资料:
  • 问题内容: 此代码来自Python的文档。我有点困惑。 以下是我最初的想法: 为什么这段代码会创建一个无限循环,而第一个却没有呢? 问题答案: 这是陷阱之一!python,可以逃脱初学者。 这是这里的魔术酱。 观察: 现在没有: 这里要注意的主要事情是返回现有列表的a,因此您要遍历未修改的副本。 您可以使用以下命令检查是否引用了相同的列表: 在第一种情况下: 在第二种情况下: 值得注意的是,它称为

  • 我已经阅读了悬而未决的文件: http://developer.android.com/reference/android/app/PendingIntent.html 发送功能定义为: 公共无效发送(上下文上下文、int代码、Intent意图、OnFinated onFined、处理程序处理程序、字符串所需权限) 代码:“返回PendingEvent目标的结果代码。” 让我困惑的是参数。我应该什

  • 代码来源 https://medium.com/geekculture/python-multiprocessing-with-ou... 这里的job.get()是表达什么呢?jobs是个list,每个job也不是queue,list的元素没有get方法,如何理解呢?

  • 在本例中,TLS版本是最高版本(1.2),还是我需要将TLS版本显式为 支持TLS 1.2版

  • 有人能解释这些代码吗?为什么它有<code>在那里?

  • 我想了解为什么一段代码不会抛出NullPointerException。 请考虑以下代码: 方法被重复调用,同时以下代码在单独的线程中运行: 只有一个实例。 从不引发NullPointerException。 但是,当方法暂停时,即使暂停0毫秒,也会按预期引发NullPointerException: 我的理解是,在理论上,在检查和调用之间存在竞争条件。在实践中,如果不引入暂停(即从后续方法调用中