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暗含的转换。