有这样的输入数据
/u01/app/oracle:
dev = /dev/oralv
vfs = jfs2
log = /dev/sideloglv
mount = false
check = false
type = side
options = rw
account = false
/opt/safewatch:
dev = /dev/safewatchlv
vfs = jfs2
log = /dev/sideloglv
mount = false
check = false
type = side
options = rw
account = false
/forbackup:
dev = /dev/fslv00
vfs = jfs2
log = /dev/sideloglv
mount = false
check = false
options = rw
account = false
/proc:
dev = /proc
vol = "/proc"
mount = true
check = false
free = false
vfs = procfs
实际上,任务是最终得到一个所有挂载点的列表,其中vfs = jfs2(即对于这个列表,discard /proc)
现在我以这种方式决定(validFs- 这是Set我们vfs离开的人)
val out = HashSet<String>()
var current = ""
inputStrings
.forEach {
when {
it[0] == '/' -> current = it.trimEnd(':')
it.startsWith("vfs")
&& it.substringAfter('=').trimStart() in validFs -> out.add(current)
}
}
return out
但是这种设计在我心中引起了矛盾的感觉。也许这个任务以某种方式更简单、更优雅地解决了,但我就是不知道?
可以是这样。
功能更强大,但并不是更好。