2016-06-20 44 views
0

我正在通過Atomic Sc​​ala 2.0學習Scala。我正在嘗試自己創建一個包,並試圖在我的程序中使用它。這是創建我的包代碼:對象pythagorean不是包com的成員 - Scala編程錯誤

package com.atomicscala.pythagorean 

class RightTriangle { 
    def hypotenuse(a:Double, b:Double):Double={ 
     math.sqrt(a*a + b*b) 
    } 
    def area(a:Double, b:Double):Double={ 
     a*b/2 
    } 
} 

這是我的計劃:

import com.atomicscala.pythagorean._ 

object test{ 
    def main(args:Array[String])={ 
     val rt = new RightTriangle 
     println(rt.hypotenuse(3,4)) 
    } 
} 

當我嘗試編譯包後運行我的程序,我得到一個錯誤這樣的:

error: object pythagorean is not a member of package com.atomicscala

取而代之的是,如果我將包名稱爲pythogorean,則代碼正常工作。這是什麼原因造成的?

回答

0

我能夠提類路徑來解決它在Scala命令中。

scala filename -classpath . (If the package is in the current working directory)

scala filename -classpath PackageLocation

0

與包拼寫正確試試:

您有:

package com.atmoicscala.pythagorean

大概應該是

package com.atomicscala.pythagorean

+0

對不起,這只是一個錯字那裏運行階命令。它在程序中拼寫正確。 –

0

根本原因是在「fsc」上,fsc將在類路徑更改時重置。 您可以明確地重置執行以下

fsc -reset

那麼你並不需要在您的階命令-classpath。 注意:我不確定這是否是一種好的做法。

另一種方法是不使用FSC離線編譯

scala -nc filename

相關問題