Scala Import子句举例分析

发布时间:2021-12-08 15:36:36 作者:iii
来源:亿速云 阅读:100

这篇文章主要介绍“Scala Import子句举例分析”,在日常操作中,相信很多人在Scala Import子句举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Scala Import子句举例分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

语法:
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)}

到此,关于“Scala Import子句举例分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. scala
  2. scala隐式转换优先级问题举例分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

scala import

上一篇:Scala For语句段怎么使用

下一篇:Scala视图是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》