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》
Scala--包和引入的更多相关文章
- Scala学习(七)---包和引入
包和引入 摘要: 在本篇中,你将会了解到Scala中的包和引入语句是如何工作的.相比Java不论是包还是引入都更加符合常规,也更灵活一些.本篇的要点包括: 1. 包也可以像内部类那样嵌套 2. 包路径 ...
- Scala学习七——包和引入
一.本章要点 包也可也可以像内部类那样嵌套 包路径不是绝对路径 包声明链x.y.z并不自动将中间包x和x.y变成可见 位于文件顶部不带花括号的包声明在整个文件范围内有效 包对象可以持有函数和变量 引入 ...
- Scala包
#引入包的全部成员的办法 import scala.collection._ #引入同一个包中的几个成员 import scala.collection.{A,B} #重名 要 重命名 import ...
- Ch07 包和引入 - 练习
1. 编写示例程序,展示为什么 package com.horstmann.impatient 不同于 package com package horstmann package impatien ...
- [转]myeclipse 生成JAR包并引入第三方包
myeclipse 生成JAR包并引入第三方包 我用的是myeclipse8.0 首先用myeclipse生成JAR 一.生成JAR包 1.点选项目右键—>Export 2.Java—>J ...
- idea没有代码自动提示功能和包自动引入不了问题
idea没有代码自动提示功能和包自动引入不了问题 原因:节电模式 File -> Power Save Mode (被勾选了) 处理方法: File -> Power Save Mode ...
- Scala包和引用
1.包 Scala包的命名方式有两种.一种和Java一样,通过把package子句放在文件顶端的方式,把整个文件的内容放进包里.如: package scala.actors.Actor 另一种方式可 ...
- myeclipse从SVN上拉项目,各种报错,jar包没有引入
问:项目中myeclipse从SVN上拉项目,各种报错,jar包没有引入 答: 从SVN拉项目步骤一定不能出错,一有点差异就会出非常多的事情 1-右键项目checkout的时候 第一页选默认值就行 点 ...
- IDEAidea导入Scala包
IDEAidea导入Scala包 一.配置windows的scala的环境变量 二.IDEA导入scala插件 1.如图步骤导入IDEA的scala插件 三.添加本地的scala目录 这时候我们应该在 ...
- 《快学Scala》第六章 对象 第七章 包和引入
随机推荐
- 使用openpyxl模块将Excel中的数据导入数据库
这里将不介绍openpyxl模块的详细操作. 主要就是记录一个使用openpyxl模块将Excel表格的数据导入数据库中的实例. from openpyxl import load_workbook ...
- C#反射的一些经验[转载]
写代码的时候经常需要分析已有类型的信息例如:分析现有类型自动生成类, 或者为现有的类自动增加一些功能总结了一点点经验以ClassA a; 为例1. 通过typeof(ClassA) 或者 a.Get ...
- Nginx控制客户端请求的速率
使用ngx_http_limit_req_module模块的两个参数 ngx_http_limit_req_module模块用于限制每个IP访问每个定义key的请求速率 1.limit_req_zon ...
- Django组件扩展 总结
1. Form组件扩展: 验证用户输入 obj = Form(reuest,POST,request.FILES) if obj.is_valid(): obj.clean_data else: ob ...
- python 中* 和**的作用
先举个 ** 使用的例子: data = {"a": 1, "b": 2} def foo(**kwargs): print kwargs foo(a=1, b ...
- windows10操作系统中cmd窗口下telnet功能失效的解决方案
查找windows自带功能,在window10中相当方便.打开windows10的设置面板,在搜索栏中搜索“windows功能”,弹出以下界面: 根据弹出的提示“启动或停用windows功能”即可弹出 ...
- systemd 之 journalctl
Systemd 日志系统 一.前言 昨天写了一篇文章,内容为:Systemd 常规操作与彩蛋,参考了 ArchLinux 官方文档并结合培训中的思路进行了部分修改补充.如果你懂得了基础的管理,那必然还 ...
- MySQL中的xtrabackup的原理解析
xtrabackup的官方下载地址为 http://www.percona.com/software/percona-xtrabackup. xtrabackup包含两个主要的工具,即xtraback ...
- 针对系统中磁盘IO负载过高的指导性操作
针对系统中磁盘IO负载过高的指导性操作 主要命令:echo deadline > /sys/block/sda/queue/scheduler 注:以下的内容仅是提供参考,如果磁盘IO确实比较大 ...
- PHP 8中数据类型
PHP 一共支持八种数据类型 4种标量数据类型 boolean布尔型 只有两个值 true 和 flase integer整形 包括正整数和负整数,无小数位 float/double 浮点 ...