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》

  • 相关阅读:
    svn备份
    Java Web开发引用包的方法
    nucht1.2二次开发增量采集
    程序集信息设置.net
    lucene的基本查询及lucene3.0.1API
    Asp.net网站部署
    C语言面试算法题(一)
    面试题
    C语言面试算法题(二)
    C++的IO流的函数
  • 原文地址:https://www.cnblogs.com/one--way/p/5801766.html
Copyright © 2011-2022 走看看