小编ven*_*hka的帖子

Scala协议缓冲编译器

我正在考虑编写代码生成器来从google protobuf定义文件生成scala.我认为它有价值的原因是Java绑定太过Java-ish而且在scala中可以做得更好.例如,对于以下定义

message Foo {
  required int F1 = 1;
  repeated string F2 = 2;
  message Inner (
    required int F3 = 1;
  )
}
Run Code Online (Sandbox Code Playgroud)

我希望能够像这样从Scala构造proto对象:

val foo = Foo (
  F1(127),
  F2("first", "second"),
  Inner (
    F3(911)
  )
)
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果有人知道已经存在的这些方面的东西,或者如果没有,你发现它值得开始一个新的项目吗?

scala protocol-buffers

18
推荐指数
2
解决办法
6970
查看次数

SortedMap中最近的键

给定一个键k在一个SortedMap,我怎么能有效地找到最大的关键m是小于或等于k,也是最小的关键n是大于或等于k.谢谢.

scala

15
推荐指数
1
解决办法
1768
查看次数

如何定义Ordering [Array [Byte]]?

是否有必要从头开始提供实施?我找不到任何匹配的隐含,甚至没有最后的Implicits特征.seqDerivedOrdering显然不起作用,因为Array不是Seq.

scala

6
推荐指数
3
解决办法
1157
查看次数

Scala映射与原始类型值类型

据我所知,从scala stdlib声明一个地图并不会将它专门化为原始类型.我正在寻找的是不支付装箱/拆箱的价格,但同时有scala地图的界面.一个明显的选择是使用特洛伊地图,但我不相信有scala视图.任何帮助赞赏.

scala

5
推荐指数
1
解决办法
780
查看次数

scala 2.10中的Option.fold

在随后的scala 2.10.0-M7会话中:

scala> trait A
defined trait A
scala> class B extends A
defined class B
scala> class C extends A
defined class C
scala> Some(0).fold(new B){_=>new C}
<console>:11: error: type mismatch;
 found   : C
 required: B
              Some(0).fold(new B){_=>new C}
Run Code Online (Sandbox Code Playgroud)

我希望编译器找到常见的超类型(即A)而不是抱怨.是一般的类型推理限制,还是Option.fold定义方式的结果?

谢谢.

scala scala-2.10

4
推荐指数
1
解决办法
2056
查看次数

标签 统计

scala ×5

protocol-buffers ×1

scala-2.10 ×1