`

scala中泛型类型中的一元操作符

阅读更多

Scala 中泛型定义中一元符号总可以进行如下的转换:

~[A, B]可以写为A ~ B

因此我们可以写出下面的代码
scala> case class ~[+A, +B](_1: A, _2: B)
defined class $tilde

scala> val a = new ~( new ~(1,2),3)
a: ~[~[Int,Int],Int] = ~(~(1,2),3)

scala> val aa = a match {case a1 ~ a2 ~ a3 => (a1, a2, a3)}
aa: (Int, Int, Int) = (1,2,3)

在play framework 2中 使用 anorm时,我们可以写出下面的代码:
val   task = {
    get[Int]( "id" ) ~
      get[String]( "label" ) ~
      get[String]( "content" ) map {
         case   id ~
          label ~
          content =>
          Task(id, label, content)
      }
  }

这里map之前的 combinator  parser解析之后所返回的内容是各个字段的值所组成的case类~的实例,结构类似~(~(id,label),content),它的泛型结构可以匹配为id ~ label ~ content。
分享到:
评论

相关推荐

    头歌Scala中集合的使用

    Scala中集合的使用 大学生 1. List 列表的使用 2. Set 集合的使用 3.Map 映射的使用 4. 元组的使用

    simulacrum, 在 Scala 中,类型类的第一类语法支持.zip

    simulacrum, 在 Scala 中,类型类的第一类语法支持 三维图形 类型为类岩石,它们在 Scala 中的编码需要很多样板,它不是岩石。 项目之间存在不一致,其中类型类的编码方式不同。 在项目中存在不一致,其中面向对象的...

    Scala程序设计(第2版)

    22.2 Java泛型与Scala泛型 430 22.3 JavaBean的性质 432 22.4 AnyVal类型与Java原生类型 433 22.5 Java代码中的Scala名称 433 22.6 本章回顾与下一章提要 434 第23章 应用程序设计 435 23.1 回顾...

    scala编程中文pdf

    scala编程 33章 中文pdf Scala编程实战 目录 第1章字符串. 11 第2章数值39 第3章控制结构.60 第4章类和属性.103 第5章方法147 第6章对象170 第7章包和导入.190 第8章特质200 第9章函数式编程214 第10 章集合242 第...

    Scala_中文学习资料_含Scala_2.7.6_API.rar

    Scala_中文学习资料_含Scala_2.7.6_API.rar。Scala_中文学习资料_含Scala_2.7.6_API.rar。

    scala中文教程(java 平台开发语言 scala 简单教程)

    Scala 是一种很有品味的类型语言:它是静态类型的,但仅在需要的地方显式定义类型。Scala 向对象和函数式语言两方面获得了强大的特性,然后用一些新奇的点子把它们漂亮地整合成一 它的语法是如此的轻量级,而原语又...

    scala 中文学习 入门与进阶

    scala.chm 中文学习 入门与进阶, 以及用到的构建工具与测试工具

    effectful, 在 Scala 中,类型安全effectful计算的语法.zip

    effectful, 在 Scala 中,类型安全effectful计算的语法 Effectful 如果我们想要理解所有这些结构的符号影响,也许我们应该尝试回收已经经拥有的符号。,Paterson,,,,。Effectful是一个小型的宏库,允许你以比 ...

    scalgos, Scala 中的算法.zip

    scalgos, Scala 中的算法 目标学习 ScalaText 实现惯用函数 Scala 中常用算法没有外部依赖项( 除了测试的specs2 )良好的测试和文档建筑安装 git,Scala 和 sbt: brew install git s

    scala编程中文

    scala编程中文版本(33章全)。大数据必备参考书箱。非常适合初学者的一本书,这本书的作者就是scala语言的创始人

    scala API 操作hbase表

    最近看了hbase的源码根据源码写了一些scala调动hbase表的API,话不多说直接上代码!...并且在scala,maven项目中,还有创建一个resources包(这个网上多的是)主要是放core-site,xml和hdfs-site.xml以及hbase-site.xml

    快学 scala 中文版 带完整目录

    11.3 一元操作符 159 11.4 赋值操作符 160 11.5 优先级 161 11.6 结合性 162 11.7 apply和update方法 162 11.8 提取器 L2 164 11.9 带单个参数或无参数的提取器 L2166 11.10 unapplySeq方法 L2167 11.11 ...

    lambda-scala:Scala 中的类型级 lambda 演算

    Scala 中的类型级 lambda 演算 此存储库演示了 Scala 类型中 lambda 演算的实现。 无类型 lambda 演算 import lambda . _ case class Equals [ A > : B < : B , B ]() // this checks type equality type S = x ...

    Scala基本数据类型和运算符.md

    Scala基本数据类型和运算符.md

    scala-xml_2.11-1.0.1-API文档-中文版.zip

    赠送jar包:scala-xml_2.11-1.0.1.jar; 赠送原API文档:scala-xml_2.11-1.0.1-javadoc.jar; 赠送源代码:scala-xml_2.11-1.0.1-sources.jar; 赠送Maven依赖信息文件:scala-xml_2.11-1.0.1.pom; 包含翻译后的API...

    scala-reflect-2.12.10-API文档-中文版.zip

    赠送jar包:scala-reflect-2.12.10.jar; 赠送原API文档:scala-reflect-2.12.10-javadoc.jar; 赠送源代码:scala-reflect-2.12.10-sources.jar; 赠送Maven依赖信息文件:scala-reflect-2.12.10.pom; 包含翻译后...

    快学Scala.中文完整版

    由于Scala运行于JVM之上,因此它可以访问任何Java类库并且与Java框架进行互操作。《快学Scala》从实用角度出发,给出了一份快速的、基于代码的入门指南。Horstmann以“博客文章大小”的篇幅介绍了Scala的概念,让你...

    Scala编程_中文高清完整版附带案例源码

    第5章,“基本类型和操作”,覆盖了Scala的基本类型,它们的文本,你可以执行的操作,优先级和关联性是如何工作的,还有什么是富包装器。 第6章,“函数式对象”,进入了Scala面向对象特征的更深层次,使用函数式...

Global site tag (gtag.js) - Google Analytics