首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scalaz转染者似乎以别名失败

Scalaz转染者似乎以别名失败
EN

Stack Overflow用户
提问于 2012-09-04 10:46:33
回答 2查看 172关注 0票数 2

使用类型别名似乎混淆了Scala类型推断器或编译器。实际上,试图编译

代码语言:javascript
复制
import scalaz.OptionT.optionT
type Foo[A] = Option[Option[A]]
val x: Foo[Int] = Some(Some(3))
optionT(x)

导致奇怪的错误

代码语言:javascript
复制
java.lang.IllegalArgumentException: transpose requires all collections have the same size

由于我对Scala的经验有限,我不确定是否应该为此提交一个bug,如果这是预期的行为。

这真的是一个错误还是预期的行为?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-04 11:20:25

我自己刚刚测试过,IllegalArgumentException是编译器的跳出,这将是一个bug。

票数 2
EN

Stack Overflow用户

发布于 2012-09-04 11:28:36

我也对此进行了测试,这看起来确实是个bug,您应该向scala团队报告这一点。但是,您可以通过给编译器一个提示来解决这个问题:

代码语言:javascript
复制
val x: Foo[Int] = Some(Some(4))
val y = optionT[Option](x)
y: scalaz.OptionT[Option,Int] = OptionT(Some(Some(3)))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12261882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档