为什么80%的码农都做不了架构师?>>>   

语法:
Import ::= „import‟ ImportExpr {„,‟ ImportExpr}
ImportExpr ::= StableId „.‟ (id | „_‟ | ImportSelectors)
ImportSelectors ::= „{‟ { ImportSelector „,‟} (ImportSelector | „_‟) „}‟
ImportSelector ::= id [„=>‟ id | „=>‟ „_‟]
import子句形式为import p.I,p是一个稳定标识符(§3.1),I是一个import表达式。import表达式确定了p的成员中一些名称的集合,使这些名称不加限定即可用。最普通的import表达式的形式是一个import选择器的列表。
{x1=>y1,…,xn=>yn,_}
其中n>=0,最后的通配符„_‟可以没有。它使每个成员p.xi在未限定的名称yi下可用。例如每个import 选择器 xi=>yi将p.xi重命名为yi。如果存在最终的通配符,p的除x1,…,xn之外的成员z也将在其自身未限定的名称下可用。
import 选择器对类型和术语成员起同样作用。例如,import子句import p.{x=>y}将术语p.x重命名为术语y,并且将类型名p.x重命名为类型名y。这两个名称中至少有一个引用p的一个成员。
如果import 选择器的目标是通配符,import 选择器就会隐藏对源成员的访问。例如,import 选择器 x=>_将x“重命名”为通配符号(作为用户程序中的名称不可访问),因此也有效阻止了对x的非限制性的访问。这在同一个import 选择器列表最后有一个通配符的情况下是有用的,此时将引入所有前面import 选择器没有提及的成员。
由import子句所引入的绑定的域开始于import子句之后并扩展至封闭块,模板,包子句,或编译单元的末尾,具体决定于哪个先出现。
存在一些简化形式。import 选择器可以只是一个名字x。这种情况下,x以没有重命名的方式被引入,因此该import 选择器等价于x=>x。更进一步,也可以用一个标识符或通配符来替换整个的import 选择器列表。import子句import p.x等价于import p.{x},例如不用限定p的成员x即可用。import子句p._等价于import p.{_},例如不用限定p的所有成员x即可用(该处是java中import p.*的同义语)。
一个import子句中的多个import表达式import p1.I1,…,pn.In被解释为一个import子句的序列import p1.I1;…;import pn.In。
示例4.7.1考虑以下对象定义:
object M{
def z = 0, one = 1
def add(x: Int, y: Int):Int = x + y
}
因此代码块
{import M.{one, z => zero, _}; add(zero, one)}
就等价于代码块
{M.add(M.z, M.one)}

更多精彩内容请关注:http://bbs.superwu.cn

关注超人学院微信二维码:

转载于:https://my.oschina.net/crxy/blog/414997

Scala---Import子句详解相关推荐

  1. python import io_详解Python IO编程

    文件读写 读文件 try: # windows下utf8 f = open('./README.md', 'r', encoding='utf8', errors='ignore') print(f. ...

  2. scala 隐式详解(implicit关键字)

    掌握implicit的用法是阅读spark源码的基础,也是学习scala其它的开源框架的关键,implicit 可分为: 隐式参数 隐式转换类型 隐式调用函数 1.隐式参数 当我们在定义方法时,可以把 ...

  3. Scala之——Implicit 详解

    在我看来,Implicit 做的事情也是 Scala 主要做的事情,那就是代码压缩,减少模块代码,talk is cheap,先用一个实例来了解一下 Implicit 的作用. 一个栗子 马上就到情人 ...

  4. ideal如何快速导入import_Spring的@Import注解详解

    首先看下@Import的javadoc文档: Provides functionality equivalent to the <import/> element in Spring XM ...

  5. python哪里下载import包-详解python中的模块及包导入

    python中的导入关键字:import 以及from import 1.import import一般用于导入包以及模块. 不过有个小问题: (1)当导入的是模块的时候是可以直接可以使用模块内的函数 ...

  6. ORACLE-WITH 子句详解

    概述 with 子句是在oracle 9i release 2 中引入的.with 子句又叫做子查询构造语句.可以用来给一个子查询块命名. 该查询块的检索结果会被oracle 保存在用户的临时表空间中 ...

  7. Mysql: SQL JOIN 子句详解

    SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段. 最常见的 JOIN 类型:SQL INNER JOIN(简单的 JOIN).SQL LEFT JOIN.SQL  ...

  8. @mapperscan注解_Spring的@Import注解详解

    首先看下@Import的javadoc文档: Provides functionality equivalent to the <import/> element in Spring XM ...

  9. scala yield入门详解

    概念 可以遍历集合并对集合元素处理产生新集合,新集合和原有集合类型相同. (range的不同) Array,List,Set,Range 本质 语法糖 用法 scala> val s=Array ...

最新文章

  1. UML用例图概要(转)
  2. linux php 调用exec() 中,svn遇到的问题
  3. 深度学习-LeCun、Bengio和Hinton的联合综述(上)
  4. ubuntu编译android4.0
  5. linux命令管理GPT分区,Linux磁盘管理GPT分区教程
  6. Swift之深入解析异步函数async/await的使用与运行机制
  7. Clean Sheet – Windows 10的人体工程学Eclipse主题
  8. SFTP环境搭建及客户代码调用公共方法封装
  9. 构建高性能ASP.NET站点
  10. 性能服务器如何放进ppt,Linux服务器性能评估与优化.ppt
  11. 安卓编译php,编译PHP
  12. JVM内存模型及垃圾回收机制
  13. 电商项目---完成内容管理cms系统
  14. 基于链表结构实现二路归并排序详解(C++实现)
  15. C# 获取硬盘序列号
  16. ps怎么给人物抠图教程详细图解
  17. 社交网络电影深度解析论文,社交网络 电影解析
  18. FreeRtos(1)-----任务创建与管理
  19. 算法日志:python把终端的信息存为log和logging
  20. html设置返回首页,html页面添加返回顶部按钮

热门文章

  1. 如何让你的ASO优化效果提升10倍?
  2. springmvc返回值、数据写到页面、表单提交、ajax、重定向
  3. Cass环境下光标无显示
  4. oracle 测试sql执行时间_从 TPCH 测试学习性能优化技巧
  5. mysql装载本地文件及模式匹配
  6. [翻译 EF Core in Action 2.3] 理解EF Core数据库查询
  7. 如何让产品用户拥有一流的上传体验
  8. 【杂文】从实习到校招到工作
  9. 清理apache日志
  10. 如何阻止通过Outlook用户发送WORD或EXCEL变成带Winmail.dat文件附件的邮件