我有一个方法可以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)使用可选项(或模式匹配?)来实现它 - 可能是单行的。
有人可以提出一些建议吗?
可以在这里找到要试用的源代码。