Scala包和引用__Scala

來源:互聯網
上載者:User
1.包

Scala包的命名方式有兩種。一種和Java一樣,通過把package子句放在檔案頂端的方式,把整個檔案的內容放進包裡。如:

package scala.actors.Actor

另一種方式可以在package子句之後把要放到包裡的定義用花括弧括起來。如:

package bobsrockets{package navigation{//在bobsrockets.navigation包中class Navigatorpackage tests{//在bobsrockets.navigation.tests包中class NavigatorSuite}}}

另外,Scala在所有使用者可建立的包之外提供了名為_root_的包,即任何你能寫出來的頂層包都被當做是_root_包的成員。如:
//檔案launch.scalapackage launch{class Booster3}//檔案bobsrockets.scalapackage bobsrockets{package navigation{package launch{class Booster1}class MissionControl{val booster1 = new launch.Booster1val booster2 = new bobsrockets.launch.Booster2val booster3 = new _root_.launch.Booster3}package launch{class Booster2}}}

2.引用 Scala的import與Java的import的差異:
可以出現在任何地方;
可以指的是(單利或正統的)對象或包
可以重新命名或隱藏一些被引用的成員
e.g

//只引用linalg中的DenseMatrix和DenseVectorimport breeze.linalg.{DenseMatrix, DenseVector}//將DenseMatrix重新命名為BDMimport breeze.linalg.{DenseMatrix => BDM, DenseVector}//引用linalg中的所有成員import breeze.linalg._//引用linalg中除了DenseMatrix的所有成員import breeze.linalg.{DenseMatrix => _, _}

Scala的import的使用規則:
簡單名x。把x包含進引用名集合;
重新命名子句x => y。讓名為x的成員以名稱y出現;
隱藏子句x => _。把x排除在引用名集合之外;
全包括“_”。引用除了前面子句提到的之外的全體成員。如果存在全包括,那麼必須是引用選擇的最後一個。
另外,“.scala”檔案都隱式的添加了如下引用:

import java.lang._import scala._import Predef._

3.存取修飾詞 Scala和Java修飾符的不同點,如下表:

保護的範圍
Scala裡的存取修飾詞可以通過使用限定詞強調。格式為private[X]或protected[X]的修飾符表達“直到”X的私人或保護,這裡X指代某個所屬的包、類或單例對象。
特例:被private[this]標記的定義僅能在包含了定義的同一個對象中被訪問。


參考文獻:

《Scala編程》

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.