【问题标题】:Python like package name aliasing in ScalaScala 中类似于 Python 的包名别名
【发布时间】:2015-01-30 23:06:01
【问题描述】:

我知道在 Scala 中,您可以像这样为包内的内容设置别名:import some.package.{someObject => someAlias}

有没有办法为包名创建别名,而不是为其中的类/对象创建别名?

例如,在 Python 中,您可以: import package as alias

【问题讨论】:

    标签: scala


    【解决方案1】:

    您可以像给对象起别名一样为包名称起别名。

    import scala.collection.{mutable => m}
    
    val buffer = m.ListBuffer(1, 2, 3, 4)
    
    buffer: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3, 4)
    

    有趣的事实:您也可以通过这种方式为对象方法设置别名。

    import scala.collection.mutable.ListBuffer.{apply => makeBuffer}
    
    scala> makeBuffer(1, 2, 3, 4)
    res5: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3, 4)
    

    【讨论】:

    • 谢谢,我不知道我怎么可能没有尝试过。您如何为顶级包起别名,在这种情况下为scala,是否可能?
    • 我不确定你能不能。
    • 顶部有 _root_(文件系统的根目录,以防有歧义,请参阅stackoverflow.com/q/687071/754787)所以import _root_.{scala => whatever} 应该可以解决问题
    • 我试过了,但它似乎在 REPL 中不起作用。
    【解决方案2】:
    import org.joda.time.{DateTime => joda}
    

    现在您可以使用 joda 作为 DateTime 的同义词

    joda.parse("2014-12-23")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-15
      • 2011-08-15
      • 2017-04-15
      • 2018-05-05
      • 2018-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多