博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
非典型的scala程序及其编译后的结果
阅读量:6873 次
发布时间:2019-06-26

本文共 1172 字,大约阅读时间需要 3 分钟。

初学Scala

Folder structure以及部分代码

package.scala的代码

package  comx       package object mypkg {      def myprint = println("Hello Ji2 in package object")  }  object mypkg2{     def myprint = println("Hello Ji2 in object")  }
命令行

>scalac mypkg/package.scala newt.scala

>scala Test2

结果

Hello Ji2 in package object()Hello Ji2 in package object()Hello Ji2 in object()
======================

分析:

代码初学好的时候。src以下仅仅有一个文件newt.scala 和一个目录mypkg, 内涵package.scala,

运行了scalac以后。 src以下多了几个class。 多了一个comx folder

comx folder

mypkg folder

可见

1 scala的package 语句指定了class文件的生成的地方,即使原来不存在

2 package object 的定义文件package.scala 应该是在mypkg folder中

3 object 的class文件 在package指定的folder下

4.package object 没有相应的class。 在package.class中。 变为package comx.mypkg, 成了pakage结构的一层

5. newt.scala中, object 的名字是Test2, 所以scala命令的參数是Test2,   而不是newt, 否则报错

后记。对于第二点我又做了实验

把src/mypkg   -> mypkg2 ,里面的文件package.scala ->package_n.scala,

package_n.scala加了一个package object定义

package object mypkg3 {      def myprint = println("Hello Ji3 in package object")  }
结果和上次的差异

comx以下变成了两个folder :mypkg & mypkg3

结论:

package object的定义文件的名字随意,位于的folder名字也随意,

反而是每一个package object的名字会生成一个folder。里面都是各自己定义相应的class: package.class & package$.class

你可能感兴趣的文章
windows下的vim安装使用
查看>>
HTML内容总结
查看>>
Python--day69--ORM的F查询和Q查询
查看>>
C++符号优先级
查看>>
js 倒计时功能源码
查看>>
(转)非常完善的Log4net详细说明
查看>>
C++风格与C风格文件读写效率测试-vs2015,vs2017
查看>>
医道官途
查看>>
(转)C#抽象类和接口对比
查看>>
在树莓派(Raspberry Pi)上编译安装更新版本的Python
查看>>
react 调用 function 的写法 及 解决 react onClick 方法自动执行
查看>>
运行时内存以及垃圾收集器
查看>>
27、通过visual s'tudio 验证 SOCKET编程:搭建一个TCP服务器
查看>>
docker之Dockerfile实践
查看>>
JS堆栈与拷贝
查看>>
P3224 [HNOI2012]永无乡
查看>>
插件就是生产力——那些不能错过的XCode插件们
查看>>
Python打造一个在线G代码生成器
查看>>
ionic开发-怪癖001(http请求 android下无法正常运行)
查看>>
Java实现的基于socket的一次通信
查看>>