zoukankan      html  css  js  c++  java
  • Scala--包和引入

    一、包

    同一个包可以定义在多个文件中,你也可以在同一个文件中定义多个包

    文件名为:pack.scala

    package com{
      package scala{
        package test{
          class pack {
            println("This is pack")
          }
          class pack1{
            println("This is pack1")
          }
        }
      }
    }

    在其他文件中可以引用该包的类

      import com.scala.test.pack
    
      val p = new pack
      val p1 = new pack1

    目录和包没有关联关系

    二、作用域规则

    使用绝对包名:new _root_.scala.collection.mutable.ArrayBuffer[Int]

    三、串联式包语句

    package com.scala.test{
      
    }

    com 和 com.scala 不可见

    四、文件顶部标记法

    顶部标记,不使用{}

    package com.scala
    package test
    
    class pack{
      println("This is pack")
    }
    
    class pack1{
      println("This is pack1")
    }

    com.scala的内容是可见的,com的内容是不可见的

    五、包对象

    package com.scala.test
    
    package object people{
      val defaultName = "John"
    }
    
    package people{
      class Persion{
        var name = defaultName   // 从包对象拿到的常量
      }
    }

    package object

    六、包可见性

    七、引入

    import java.awt._

    _和java中的*类似

    八、任何地方都可以声明引入

    import语句可以出现在任何地方

    九、重命名和隐藏方法

    想引入包中的几个成员,可以使用选取器{}

    import java.awt.{color, font}

    重命名=>

    import java.util.{HashMap => JavaHashMap}   // HashMap重命名为JavaHashMap
    import scala.collection.mutable._           // 后续使用HashMap对应scala.collection.mutable.hashmap

    隐藏 =>_

      import java.util.{HashMap =>_ , _}
      import scala.collection.mutable._

    十、隐式引入

    每个scala程序都默认引入如下包

      import java.lang._
      import scala._
      import Predef._

    参考《快学Scala》

  • 相关阅读:
    【总结】Centos中,Kerberos安装
    Go语言mgo
    Go语言mgo
    理解 Serenity,Part-1:深度抽象
    ZCash零知识证明
    零知识证明(Zero-Knowledge Proof)原理详解:非交互式证明实现自动验证防止作假
    tf.shape(x)、x.shape、x.get_shape()函数解析(最清晰的解释)
    Java生成(m.n)之间的随机数
    tf.cond()函数解析(最清晰的解释)
    OpenStack Blazar 架构解析与功能实践
  • 原文地址:https://www.cnblogs.com/one--way/p/5801766.html
Copyright © 2011-2022 走看看