我有一个方法可以String作为输入并且还应该返回一个String.
以下 ASCII 艺术展示了逻辑流程:
Option<A> optA = finder.findA(input);
optA
/\
isEmpty() / \ isDefined()
/ \
"ERR_1" Option<B> optB = finder.findB(optA.get().bid);
/ \
isEmpty() / \ isDefined()
/ \
"ERR_2" opt2.get().id
基本上对于给定的,input我正在寻找A以Option. 然后是A我正在寻找的存在B- 也包裹在 an 中Option,否则 return ERR_1。然后如果B存在则返回它的 id,否则返回ERR_2。
我想知道如何以一种简洁明了的方式(没有任何ifology)使用可选项(或模式匹配?)来实现它 - 可能是单行的。
有人可以提出一些建议吗?
可以在这里找到要试用的源代码。