标签:scala
初学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
标签:scala
原文地址:http://blog.csdn.net/cleverwyq/article/details/44242931