`
bit1129
  • 浏览: 1069824 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【Scala九】Scala核心三:泛型

 
阅读更多

泛型类

package spark.examples.scala.generics

class GenericClass[K, V](val k: K, val v: V) {
  def print() {
    println(k + "," + v)
  }
}

object GenericClass {
  def main(args: Array[String]) {
    ///不需要指定K,V的类型,自动推断
    val gc = new GenericClass("ABC", 100)
    ///显式指定K,V的类型,自动推断
    val gc2 = new GenericClass[String, Integer]("ABC", 100)
    gc.print
    gc2.print
  }
}

 

 

范型方法

package spark.examples.scala.generics

//仅仅在方法上指定泛型参数
class GenericMethod {
  def print[T](content: T) {
    println(content)
  }
}

object GenericMethod {
  def main(args: Array[String]) {
    val gm = new GenericMethod
    gm.print(100) //不需要指定T的类型,由100自动推断
  }
}

 

范型上下界

有时,需要明确指定范型类T是某个类或者Trait的子类型,比如Comparable接口的子类,这样,才能对泛型类对象进行比较操作。Comparable是泛型的上界?

//指定T必须是实现了Comparable接口的类型,
class ComparableGenericClass[T <: Comparable[T]](val v1: T, val v2: T) {
  def min() = {
    if (v1.compareTo(v2) < 0) v1 else v2
  }
}
object GenericClass {
  def main(args: Array[String]) {
    val cgc = new ComparableGenericClass[String]("10", "20")
    println(cgc.min())
  }
} 

 

有时,也需要指定泛型T必须是某个类型的超累,

 

 

 

 

 

分享到:
评论

相关推荐

    scala-2.12.6.tgz

    Scala的类型系统是其强大的特性之一,它允许定义类型别名、类型推断、泛型以及类型安全的集合。这种类型系统在保持代码安全性的同时,提供了高度的灵活性。 8. 函数式编程: Scala对函数式编程的支持使其成为函数...

    scala实战高清讲解

    - 泛型:泛型提供了一种方式来定义类型参数化的方法和类,增加了代码的复用性。 3. **函数式编程** - 高阶函数:通过接收或返回函数,高阶函数允许我们进行函数式编程,如map、filter和reduce操作。 - 柯里化:...

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

    #### 三、Scala的核心概念详解 1. **类与对象**:Scala中的类和对象概念与Java类似,但更加简洁。例如,可以使用`object`关键字创建单例对象,这在Scala中非常常见。 2. **基本类型和操作**:Scala支持各种基本数据...

    programming in scala(第三版)

    10. **泛型**:Scala的泛型支持类型参数化,提供了类型安全的容器和操作。 11. ** Trait复合**:Scala的特质可以被多个类继承,提供了一种灵活的代码重用机制。 12. **尾递归优化**:Scala优化了尾递归调用,避免...

    scala sdk .......

    Scala SDK,全称为Scala Software Development Kit,是用于构建和运行Scala程序的核心工具集。Scala是一种多范式编程语言,融合了面向对象和函数式编程的特点,由Martin Odersky在2003年设计并推出。它允许开发人员...

    Scala for the Impatient/快学Scala英文版.第二版 + Programming.in.Scala/Scala编程英文版

    5. **泛型**:深入浅出地解释了泛型在Scala中的应用,提升代码的复用性。 6. **表达式和控制流**:包括if表达式、for循环、case类和match语句等。 7. **宏和元编程**:介绍Scala的宏系统,用于编写更高级的代码生成...

    《Scala实用指南》代码清单

    Scala语言的核心特性包括: 1. 面向对象与面向函数的结合:Scala支持类、对象、接口和继承等面向对象特性,同时引入了高阶函数、柯里化、模式匹配等面向函数概念,使得代码更加简洁和可读。 2. 函数式编程:Scala...

    scala-2.12.8 源码包

    1. **类型系统**:Scala的类型系统是其强大特性的基石,包括静态类型、类型推断、泛型、类型类和模式匹配。在源码中,你可以看到如何实现这些功能,以及它们如何与Java虚拟机(JVM)交互。 2. **Actor模型**:Scala...

    《scala语言规范.pdf 》中文、英文版 《scala程序设计》pdf、epub格式 低分打包下载

    - Scala语言规范是Scala编程的基础,它定义了语言的所有语法和语义,包括类型系统、类和对象、函数和方法、模式匹配、并发等核心概念。 - 《Scala语言规范.pdf》是这个规范的中文译版,对于中文使用者来说,这是一...

    scala-intellij-bin-2018.1.8.zip

    3. 泛型:Scala的泛型系统是静态类型的,提供了类型安全和代码复用。 4. 广义的类型推断:编译器可以根据上下文推断变量和方法的类型,减少显式的类型声明。 在IntelliJ IDEA中使用Scala插件,开发者可以享受到: 1...

    Scala语法入门.pdf

    Scala的发展始于2001年,由马丁·奥德斯基(Martin Odersky)领导的设计团队,他也是Java泛型和Lambda表达式等特性背后的推手。Scala的源代码会被编译成Java字节码,从而可以在JVM上运行。Scala支持静态类型检查,这有...

    A Brief Introduction to Scala

    在Scala的设计理念中,函数式编程占据着核心地位。函数式编程之所以重要,有以下几个原因: 1. **Map-Reduce模型**:由谷歌推广并应用的一种分布式计算模型,能够处理大规模数据集。函数式编程通过其简洁、易于并行...

    scala入门教程pdf

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

    scala-2.10.7版本源码

    4. 泛型:Scala的泛型系统允许我们编写类型安全的代码,可以在编译时检查类型。源码中会展示如何定义和使用泛型类和方法,以及类型推断的实现。 5. 集合框架:Scala的集合库是其强大功能的一部分,包括Seq、Set、...

    scala-docs-2.11.8.rar

    3. **泛型**:Scala的泛型提供了类型参数化,使得代码更具通用性。 4. **Option类型**:Scala的Option类型用于处理可能的空值,避免了常见的NullPointerException。 5. **Future**:在并发编程中,Future表示一个...

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

    Scala中的类型参数化允许开发者创建泛型类和函数,从而编写更加通用的代码。 #### 类型信息 Scala的强大之处在于其类型系统,通过类型推断和显式类型注解,可以编写类型安全的代码。 #### 集合 Scala提供了丰富的...

    图灵书籍(Scala程序设计(第2版).pdf+Scala程序设计-JAVA虚拟机多核编程实战.pdf)

    Scala程序设计(第2版)很可能详尽地介绍了Scala的基本语法、类与对象、模式匹配、高阶函数、类型系统、并发编程等核心概念,以及可能包含了一些新的语言特性或最佳实践。 **JAVA虚拟机多核编程实战** 这本书则关注...

Global site tag (gtag.js) - Google Analytics