JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Languages on JVM » Scala  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 如何在 Scala 中引入不同 Scala 檔案中定義的類別?
puremonkey2006





發文: 112
積分: 0
於 2010-10-01 22:43 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我在學習良葛哥的 Gossip in Scala 中的套件管理 :
http://caterpillar.onlyfun.net/Gossip/Scala/Package.html
中有在不同的Scala 檔案中定義不同類別, 譬如如果我定義了一個 A.scala :
1
2
package test.a
class A(val x: Int, val y: Int)

接著又在另一個Scala 檔案 B.scala 定義了B類別, 但希望在這使用A類別 :
1
2
3
package test.b
class B(val x: Int, val y: Int)
var test = new test.a.A(1,2)

通常就是下指令 :
scala B.scala
但是會發現Error message 說 A類別不存在? Dead
請問要怎麼下指令才能在 B.scala 中看到 A類別?


reply to postreply to post
Where there is a will, there is a way
作者 Re:如何在 Scala 中引入不同 Scala 檔案中定義的類別? [Re:puremonkey2006]
caterpillar

良葛格

版主

發文: 2613
積分: 70
於 2010-10-01 23:30 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
package 下只能定義類別,不能有類別定義外的 statement。

scala 編譯指令(編譯後的 byte code 直接載入記憶體)的 .scala 中不能有 package 宣告!

你要嘛像文件中那樣!

要嘛寫個:
1
2
3
4
5
6
package test
object Main { 
    def main(args: Array[String]) {
        val a = new test.a.A(1, 2)
    }
}


然後像這篇文件用 scalac 編譯執行:
http://openhome.cc/Gossip/Scala/ScalacFscCommand.html

記得你如果加上了 package 了,再用 scala 時要指定全名:
1
scala test.Main


簡單的說,用 scala 來進行看似直譯的作法只是方便(其實還是編譯,編譯後的 bytecode 直接載入記憶體),開始用 package 之後,用 scalac 編譯為 .class 再加以使用才是正式作法(這時有 IDE 輔助比較方便了)。。XD


caterpillar edited on 2013-04-07 15:55
reply to postreply to post
良葛格學習筆記
作者 Re:如何在 Scala 中引入不同 Scala 檔案中定義的類別? [Re:caterpillar]
puremonkey2006





發文: 112
積分: 0
於 2010-10-03 20:57 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
感謝 良葛格 大師的指導.Big Smile
所以其實Scala 還是偏向Java 類型的 (需要編譯過程) 語言而非所謂的 Script language (像 Perl, Javascript). 原本我想說能否將Java 中容易變動的代碼改用 Scala 改寫 (因為容易變動, 所以希望使用 Script 類型的語言, 隨改隨生效, 而不用 Compile 的過程)... Dead


reply to postreply to post
Where there is a will, there is a way
» JWorld@TW »  Languages on JVM » Scala

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8