在考虑到潜在的运行时故障,如数据库查询,似乎是一个必须使用某种形式的Either[String, Option[T]]
为了准确地捕捉到以下成果:Scala:是唯一的选择吗?
- 一些(发现结果)
- 无(没有发现结果)
- SQL异常
选项根本没有足够的选择。
我想我需要潜入斯卡拉,但现在它是直的要么,除非我在上面丢失了一些东西。
已经把自己装进了我的DAO实现的一个角落,只使用Either进行写入操作,但现在我发现有些写入依赖于Option读取(例如检查新用户注册时是否存在电子邮件),这是一个主要的糟糕的赌博。
在我全力以赴之前任何人都没有替代解决方案来处理成功/失败/异常的运行时间三连胜吗?
由于记录是一种可能性'或者[String,List [T]]'会更合适,不是吗? – pedrofurla 2012-07-15 00:48:15
取决于,我需要处理选项[T]和列表[T]或选项[列表[T]]。现在我执行[String,SuccessType]进行写操作,除非我另有说明,否则对读操作也会这样做。 – virtualeyes 2012-07-15 01:07:13
@virtualeyes否,你真的不需要处理所有这些。你说有一些记录,没有记录或异常,是否正确?那么一些记录可以是非空的记录列表,没有记录可以是记录的空列表,并且异常像往常一样是左边的任一部分。 – 2012-07-15 06:04:07