scala - 在 Scala 中打印时从元组中删除数据类型
问题描述
我目前有两张地图:-
mapBuffer = Map[String, ListBuffer[(Int, String, Float)]
personalMapBuffer = Map[mapBuffer, String]
我想做的事情是创建一个列表,然后允许用户创建一个包含评论的个性化列表,这样他们就有自己的地图列表。
我只是想打印信息,因为上面的一切都很好。
要从 mapBuffer 打印密钥,我使用:-
mapBuffer.foreach(line => println(line._1))
这返回: -
Sample String 1
Sample String 2
要从 personalMapBuffer 打印相同的内容,我使用的是:-
personalMapBuffer.foreach(line => println(line._1.map(_._1)))
但是,这会返回:-
List(Sample String 1)
List(Sample String 2)
我显然希望它只返回“示例字符串”并删除 List() 方面。我假设这与 .map 函数有关,尽管这是我能找到的在元组中访问元组的唯一方法。有没有一种简单的方法来删除数据类型?我希望有一些简单的东西,比如: -
line._1.map(_._1).removeDataType
但显然不存在这样的前置功能。我对 Scala 很陌生,所以这可能非常简单(我希望它是哈哈)或者它可能更复杂一些。任何帮助都会很棒。
谢谢。
解决方案
如果默认List.toString
行为,您会看到什么。您使用 operation 构建自己的字符串mkString
:
val separator = ","
personalMapBuffer.foreach(line => println(line._1.map(_._1.mkString(separator))))
这将产生所需的结果,Sample String 1
或者Sample String 1, Sample String 2
是否会有 2 个字符串。
希望这可以帮助!
推荐阅读
- c++ - 如何读取 CBTProc HCBT_CLICKSKIPPED wParam 值?
- spring - AnnotationConfigApplicationContext 构造函数无法在集成测试中处理@Value 的注入
- sql - 如何比较 Power BI 中的两位 SQL 代码?
- visual-studio-code - 2FA 与 VS Code 远程 SSH?
- email - 为什么我的图像在首次加载时未显示在旧电子邮件客户端上?
- javascript - React Draft Wysiwyg onPaste 事件不提供剪贴板信息
- visual-studio-code - fs.writeFile 中的路径更改
- java - 需要使用日志模式拆分 KIBANA 消息
- c++ - 是否传递 std::optional
通过引用实际保存复制? - sql-server - 如何从事件日志表计算 SQL Server 中的平均队列长度