【发布时间】:2018-07-12 14:06:14
【问题描述】:
假设我只有一个顶级对象,另外两个对象嵌套在里面作为属性:
class Human(val name: String, val child: Human)
val anita = new Human("Anita", null)
val david = new Human("David", anita)
val fabrizio = new Human("Fabrizio", david)
如果我必须让最后一个孩子的名字开始 fabrizio,我需要做很多空检查控制:
if(fabrizio != null)
if(fabrizio.child!= null)
if(fabrizio.children.child!= null)
println(fabrizio.child.child.name)
我在 scala 上发现了这个“语法糖”,但它似乎只适用于集合:
println( for(x <- fabrizio.child; y <- x.child; z <- y.child) yield z.name)
事实上它在抱怨:
value flatMap is not a member of Playground.this.Human
有没有办法在不将顶级对象放入集合中的情况下获取最后一个孩子的名字?
【问题讨论】: