Scala迭代元组映射

pri*_*sia 0 iterator scala list map

我有一个键值对的映射,我试图获取给定一个键的值,但是虽然它返回一个值,但它有一些,任何想法我怎么能摆脱它?我的代码是:

val jsonmap = simple.split(",\"").toList.map(x => x.split("\":")).map(x => Tuple2(x(0), x(1))).toMap
val text = jsonmap.get("text")
Run Code Online (Sandbox Code Playgroud)

如果"text"是键,我想要它映射到的值,我目前得到以下输出:

Some("4everevercom")    
Run Code Online (Sandbox Code Playgroud)

我尝试使用flatMap而不是Map,但它也不起作用

Dan*_*ral 5

您正在寻找该apply方法.Seq,SetMap实现不同的apply方法,区别在于每一个之间的主要区别.

作为一个语法糖,.apply可以省略o.apply(x),所以你只需要这样做:

val text = jsonmap("text") // pass "key" to apply and receive "value"
Run Code Online (Sandbox Code Playgroud)

对于Seq,apply获取索引并返回一个值,如您在自己的示例中所使用的:

x(0), x(1)
Run Code Online (Sandbox Code Playgroud)

对于Set,apply取一个值,然后返回一个Boolean.