我想展平一系列集合:
val test = for(i <- 1 to 3) yield {
if(i == 1)
Set.empty
else
Set(9, 1)
}
val b = test.flatten
这失败了:
ScalaFiddle。scala:7:错误:scala没有可用的隐式视图。收集不变的设置[_
但真正让我困惑的是为什么这行得通?:
val test = for(i <- 1 to 3) yield {
if(i == 1)
Set.empty
else
Set(9, 1)
}
println(test.flatten)
// compiles and prints Vector(9, 1, 9, 1) when run
所以我的问题是:println(test.flatten)
中的flatten和val b=test.flatten
中对flatten的调用有什么区别?
多亏了迈克尔·扎哈克的评论,我才得以成功。
要么是
val test = for(i <- 1 to 3) yield {
if(i == 1)
Set.empty[Int]
else
Set(9, 1)
}
val b = test.flatten
或
val test = for(i <- 1 to 3) yield {
if(i == 1)
Set.empty
else
Set(9, 1)
}
val b: Seq[Int] = test.flatten
应该有效。将类型设置为“设置”。清空或告诉编译器我们期望val b的类型。
或者,应该可以反转您的条件并使其成为for
中的保护,并在那里使用您的Set
:
val b = for {
i <- 1 to 3
if i != 1
j <- Set(9, 1)
} yield j
// b: scala.collection.immutable.IndexedSeq[Int] = Vector(9, 1, 9, 1)
我正在使用flutter_stripe插件进行条纹付款。它正在 IOS 上运行,但在Android上,我收到此错误.根据flutter_stripe文档,为Android和ios完成的所有设置。 失败:构建失败,但有例外。 < li >哪里出错:任务执行失败':app:checkDebugAarMetadata '。 无法解析配置的所有文件': app:调试运行时间类路径'。无法解析com.str
首先对我糟糕的英文写作表示歉意! 我在Wildfly 8上部署了我的EJB bean并在Wildfly 8中调用它没有任何问题。但是当我将客户端服务器从Wildfly 8更改为Jboss AS 7时,我得到“没有ejb接收器错误”。 Wildfly 8服务器端运行输出: 输出日志: ==========================================================
下面的SQL语句在flyway v5.1.3和DB2 LUW 10.5中会失败,但是在DB2中使用客户机直接执行时可以正常工作。 错误消息: “DB2 SQL错误:SQLCODE=-440,SQLSTATE=42884,SQLERRMC = TEST _ STATUS程序,驾驶员=4.19.26 " 绝对是飞行路线的问题。有谁知道解决方法或修复方法?
我在用模拟我的api,这是为
编辑:我的解决方案,某种程度上。在本例中,我解析的是专门以美国为中心的NOAA预测。因此,我攻击了我自己的zoneid.of(“mdt”)以映射到17个时区的偏移量:https://www.timetemperature.com/abbreviations/united_states_time_zone_abbreviations.shtml 我隐约感到肮脏和羞愧,但这个特定的日期解析器是特定于这
问题内容: 我一直在尝试为我的Roguelike游戏添加一个JLabel。不幸的是,它似乎不起作用。到目前为止,这是我的代码: 我已经阅读了一些其他问题的解决方案,并且只需将JLabel添加到另一个解决方案中就可以完成。它不按这里的预期工作,为什么? PS:我不想为我的JPanel使用JLayeredPane。 问题答案: 不要使用组件(即JLabels)创建游戏环境。相反,您可以绘制所有游戏对象