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

scala的map类型

阅读更多

scala的map数据类型类似自己在草稿上随手画出,很形象地表达了人的思想,容易理解,使用起来也非常简单,先看如何创建一个map对象:

val products = Map("hjunetcn" -> 20500015, 
  		"hkbicicom" -> 20400010,
  		"hkceducn" -> 20500005,
  		"hl1314com" ->	20800004)

由map的键指向值,keyValue键值对,非常形象地表达了人为的思想

获取map的值,类似于Java提供的map:

println(products.get("hkceducn"))

 

scala支持动态类型,允许用户为某种已存在的类型添加字段和方法,下面自定义一个动态map类型,其实就是往已有的map中添加字段和方法:

import scala.language.dynamics

class UserDefinedMap extends Dynamic
{
	def selectDynamic(fieldName : String) =  products.get(fieldName)
	
	val products = Map("hjunetcn" -> 20500015, 
		"hkbicicom" -> 20400010,
		"hkceducn" ->	20500005,
		"hl1314com" ->	20800004)
}

 这里可以直接调用:

val newProducts = new UserDefinedMap
println(newProducts.hkbicicom)

 scala的编译器在类UserDefinedMap中没有找到hkbicicom类型时,如果累UserDefindMap实现了Dynamic,那么scala编译器会去寻找selectDynamic方法,这是scala暗含的转换。

分享到:
评论

相关推荐

    scala学习源代码

    另外,Scala有丰富的集合API,这些集合支持丰富的函数式操作,如map、filter和reduce,它们使数据处理变得简单且易于理解。 Scala的类型系统非常强大。它采用了静态类型,每个值都有其特定的类型,这在编译时就能...

    最好的scala学习 课件

    最后,"Scala进阶之路-part05-高级语法.pdf"将探讨Scala的一些高级特性,如类型推断、高阶函数、匿名函数、 currying、偏函数、类型系统(如类型别名、类型参数和类型成员)以及元编程。这部分内容将提升你的编程...

    Scala考试题1

    - Scala 的模式匹配更强大,支持值匹配、类型匹配、提取器对象等,而 Java 的 switch-case 仅限于值比较。 14. **Scala 与 Java 的五点区别**: - Scala 支持函数式编程,Java 主要是面向对象。 - Scala 有更...

    Scala-2.11.1.zip

    Scala是一种强大的静态类型编程语言,它融合了面向对象和函数式编程的概念,旨在提供一种可扩展的、高效的编程环境。Scala这个名字是“Scalable Language”的缩写,它旨在克服Java的一些局限性,同时保留其平台兼容...

    scala实战高清讲解

    - 类型推断:Scala具有强大的类型推断能力,允许编写更少的类型声明,提高代码可读性。 - 泛型:泛型提供了一种方式来定义类型参数化的方法和类,增加了代码的复用性。 3. **函数式编程** - 高阶函数:通过接收...

    Programming In Scala 中文版及英文版

    4. **类型推断**:Scala具有强大的类型推断能力,开发者在编写代码时可以省略许多类型声明,编译器会根据上下文自动推断出类型。 5. **集合库**:Scala的集合库是其强大特性之一,包含各种高效且功能丰富的集合,如...

    Scala 【 5 数组常见操作和 Map 】

    数组用于存储同类型的固定大小的数据集合,而 Map 则用于存储键值对。接下来,我们将详细探讨数组的常见操作以及 Map 的使用方法。 **数组操作** 1. **创建数组**: ```scala val a = Array(1, 2, 3, 4, 5) ```...

    Scala语言规范.pdf

    6. **集合库**:Scala的集合库设计精良,包含了丰富的操作,如map、filter、fold等,同时支持高效的并行操作,这在大数据处理中尤其重要。 7. **Scala与Spark的关系**:Apache Spark是构建在Scala之上的大数据处理...

    scala-2.12.8 源码包

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

    A Brief Introduction to Scala

    Scala拥有一个强大的类型系统,它支持类型推断、泛型以及与其他类型系统的映射,如Java类型系统。这些特性共同构成了Scala类型系统的基础: 1. **类型推断**:Scala编译器能够自动推断出变量的类型,无需显式指定...

    scala + mybatis 数据库查询

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

    Scala中文版

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

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

    Scala提供了丰富的集合框架,包括不可变集合和可变集合,支持诸如`List`、`Set`、`Map`等多种数据结构。 #### 异常 Scala中的异常处理与Java类似,支持`try`、`catch`和`finally`块。 #### 断言、检查 Scala还支持...

    scala学习笔记整理

    7. **类型系统**:Scala具有复杂的类型系统,包括类型参数化(Generics)、类型推导、类型别名、类型成员、隐式转换等。这些特性使得Scala在编写泛型代码和高级类型操作时具有很高的灵活性。 8. **模式匹配**:...

    Scala编程详解 第11讲-Scala编程详解:Map与Tuple 共8页.pptx

    Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...

    快学Scala课后习题答案

    10. **隐式转换**:Scala的隐式转换可以将一种类型自动转换为另一种类型,当需要某类型但实际提供的是另一种类型时,隐式转换可以发挥作用。 这个"快学Scala课后习题答案集合"资源将帮助学习者核对自己的解答,理解...

    scala-2.12.9.zip

    - **集合库**:Scala的集合库是其强大之处,提供了丰富的函数式集合操作,如map、filter和fold。 配置好环境后,你可以利用Scala进行各种开发,包括Web应用、科学计算、大数据处理、机器学习等。如果你是Java开发者...

    scala编程入门教材

    1. **基本语法与数据类型**:Scala的基础包括变量声明、常量、基本数据类型(如Int, Double, Boolean等)、字符串以及模式匹配。变量在Scala中是不可变的,通过`val`关键字定义,而可变变量使用`var`。 2. **对象和...

    Scala编程完整版

    7. **集合库**:Scala的集合库强大且高效,包括List、Set、Map等多种类型,并支持函数式编程操作,如map、filter、fold等。 Scala的数据结构: 1. **List**:线性不可变数据结构,支持O(1)的head和tail操作。 2. **...

Global site tag (gtag.js) - Google Analytics