为什么在scala中创建地图不需要并允许新的运算符?

  发布于 2023-02-08 09:40

我们使用以下方法在scala中创建新地图:

val treasureMap = Map[Int, String]()

但为什么在这里使用新的运营商是违法的?

val treasureMap = new Map[Int, String]()

我认为new是用于创建新对象,在上面的示例中我创建了一个新对象.

1 个回答
  • Map是一个trait(就像一个界面java) - 这是一个没有实现的合同.

    没有new你使用apply单身对象的工厂方法命名Map:

    val treasureMap = Map.apply[Int, String]()
    

    scala你可以称之为一个apply通过将对象名称后的括号内的任何物体的方法:

    val functionIncrement = (_: Int) + 1
    
    functionIncrement(2)
    // 3
    
    functionIncrement.apply(2)
    // 3
    
    val treasureMap = Map.apply(1 -> "a")
    
    treasureMap(1)
    // a
    
    treasureMap.apply(1)
    // a
    

    2023-02-08 09:45 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有