• 非典型的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


  • 相关阅读:
    时间操作
    2021.10.9数据结构实验课作业
    2021.9.28数据结构实验课作业
    2021.9.15数据结构实验课作业
    2021.9.7数据结构实验课作业
    苹果ios开发,CocoaPods安装方法-2021/9/11
    写组件库文档常用的技术
    document.execCommand 的用法
    手写JSON.stringify
    Object常用方法
  • 原文地址:https://www.cnblogs.com/yfceshi/p/6940305.html
Copyright © 2020-2023  润新知