`

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还允许定义操作符和实现方法重载,并支持隐式转换,这是函数式编程中一个重要的特性,允许在某些情况下自动将一个类型转换为另一个类型。 本书还介绍了Scala的控制结构,包括内建的控制结构以及如何实现...

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

    2. **基本类型和操作**:Scala支持各种基本数据类型,如Int、Double等,并提供了一系列的操作符和方法来进行数值计算。 3. **函数式对象**:Scala允许将函数视为一等公民,可以将其赋值给变量、作为参数传递给其他...

    Scala详细总结(精辟版++)

    Scala中的类型系统支持类型参数化,即泛型,允许开发者创建通用的代码。 #### 字符串 Scala支持两种类型的字符串:`String`和`StringBuilder`。`String`是不可变的,而`StringBuilder`则是可变的。此外,Scala还...

    scala-2.10.7版本源码

    10. 特性实现:源码中还可以看到许多Scala的特色特性,如特质继承、匿名函数、自定义操作符、宏(Macro)和反射的实现。 通过深入研究Scala-2.10.7的源码,开发者不仅可以提升对Scala语言的理解,还能学习到软件...

    头歌Scala中集合的使用

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

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

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

    Design Of Scala中文

    - **类型参数的表示**:在Scala中,`和 `>` 通常用于泛型表示,因此使用 `[` 和 `]` 来表示类型参数。 #### 六、一切操作都返回值 Scala中的每一个表达式都有返回值,默认情况下返回最后一个执行的表达式的值,这...

    Scala(中文完整版).zip

    Scala支持泛型,允许在类、方法和对象中使用类型参数,增强了代码的重用性和安全性。 **6. 类型系统** Scala具有强大的类型系统,包括类型推断、类型别名、隐式转换和类型参数绑定。类型推断减少了代码的冗余,隐式...

    Scala中文版

    8. **强大的集合库**:Scala的集合库提供了丰富的操作和转换,如map、filter和fold,这些操作在处理数据时非常高效。 9. **DSL设计**:由于其表达力强,Scala非常适合构建领域特定语言(DSL),这使得开发人员能够...

    快学Scala-[中文]

    12. **泛型**:Scala 的泛型系统支持类型参数化,允许编写通用的代码,提高代码的重用性。 通过阅读《快学Scala》,读者将能够深入了解这些概念,并通过实例学习如何在实际项目中应用 Scala。书中的案例和练习将...

    scala入门教程pdf

    9. **泛型**:Scala的泛型提供了一种方式来编写类型安全的代码,允许在类、方法和对象中使用类型参数。 10. ** Scaladoc**:Scala的文档生成工具,可以自动生成API文档。 "快学Scala"这份教程可能更注重实践,快速...

    scala + mybatis 数据库查询

    - Scala的静态类型系统和强大的表达能力使其成为构建复杂应用程序的良好选择,而MyBatis以其灵活性和易用性在Java世界中占有一席之地。通过使用Scala的Java互操作性,我们可以无缝地在Scala中使用MyBatis。 - 集成...

    scala编程入门教材

    10. **泛型**:Scala支持泛型,允许定义通用的类和方法,从而提高代码的重用性。 11. **Scala与Java互操作**:由于Scala运行在JVM上,它可以无缝地与Java代码集成,调用Java库并被Java代码调用。 12. **Scaladoc**...

    Scala 编程中文版-前13章

    - **操作符与方法调用**(图释3.1):在Scala中,操作符实际上是方法调用的一种特例。 - **Set类继承关系**(图释3.2):介绍了Scala中集合(Set)类的继承层次结构。 - **Map类继承关系**(图释3.3):展示了Scala...

    scala3 scala3 scala3 scala3 scala3

    新的Typelevel Scala项目引入了更强大的类型系统,允许编译器更加智能地推断变量和函数的类型,减少了程序员在代码中显式声明类型的需要。例如,`given` 关键字用于提供上下文实例,这在类型类和依赖类型推断中特别...

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

    这份指南将帮助Java开发者理解Scala的特性,如如何在Scala中使用面向对象和函数式编程,以及如何利用Scala来提升Java代码的效率和可读性。 最后,"Advance+Payment+Process%26Manual.pdf"和"Scala--.txt"这两个文件...

    Scala语言规范.pdf

    9. **泛型**:Scala支持泛型编程,允许创建类型参数化的类和方法,增强了代码的重用性和安全性。 10. **嵌套函数和局部类型**:Scala允许在函数内部定义函数,这在实现复杂逻辑时非常有用。同时,局部类型是编译器...

    Programming in Scala 2nd Edition.pdf

    8. **类型安全的泛型**:Scala的泛型是类型安全的,允许在编译时检查类型一致性,增强了代码的可靠性和可维护性。 9. ** Trait **:Scala的特质是一种轻量级的多重继承机制,它允许在不违反单继承原则的情况下实现...

Global site tag (gtag.js) - Google Analytics