Scala包和引用
1.包
Scala包的命名方式有兩種。一種和Java一樣,通過把package子句放在檔案頂端的方式,把整個檔案的內容放進包裡。如:
package scala.actors.Actor
另一種方式可以在package子句之後把要放到包裡的定義用花括號括起來。如:
package bobsrockets{ package navigation{ //在bobsrockets.navigation包中 class Navigator package tests{ //在bobsrockets.navigation.tests包中 class NavigatorSuite } } }
另外,Scala在所有使用者可建立的包之外提供了名為_root_的包,即任何你能寫出來的頂層包都被當做是_root_包的成員。如:
//檔案launch.scala package launch{ class Booster3 } //檔案bobsrockets.scala package bobsrockets{ package navigation{ package launch{ class Booster1 } class MissionControl{ val booster1 = new launch.Booster1 val booster2 = new bobsrockets.launch.Booster2 val booster3 = new _root_.launch.Booster3 } package launch{ class Booster2 } } }
2.引用
Scala的import與Java的import的差異: 可以出現在任何地方;
可以指的是(單利或正統的)物件或包
可以重新命名或隱藏一些被引用的成員
e.g
//只引用linalg中的DenseMatrix和DenseVector import breeze.linalg.{DenseMatrix, DenseVector} //將DenseMatrix重新命名為BDM import 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程式設計》
相關推薦
Scala包和引用
1.包 Scala包的命名方式有兩種。一種和Java一樣,通過把package子句放在檔案頂端的方式,把整個檔案的內容放進包裡。如: package scala.actors.Actor 另一種方式可以在package子句之後把要放到包裡的定義用花括號括起來。如: pa
Scala 包和引用
1.包/作用域 在Java和Scala中管理專案可以使用包結構,C和C#使用名稱空間。 對於package,有如下幾種形式: 形式體現: package com.nick.impatient.people class Person{ v
Scala詳解---------包和引用
摘要: 在本篇中,你將會了解到Scala中的包和引入語句是如何工作的。相比Java不論是包還是引入都更加符合常規,也更靈活一些。本篇的要點包括: 1. 包也可以像內部類那樣巢狀 2. 包路徑不是絕對路徑 3. 包宣告鏈x.y.z並不自動將中間包x和x.y變成可見 4. 位於檔案頂部不帶花括號的包宣告在整個檔
JavaScript學習總結(三、函數聲明和表達式、this、閉包和引用、arguments對象、函數間傳遞參數)
rem [1] incr foo i++ scrip erro ren 推薦 一、函數聲明和表達式 函數聲明: function test() {}; test(); //運行正常 function test() {}; 函數表達式: var test = fun
8.Scala包和import
一.包 //包,平常我們還是想Java那樣去使用包 package scala{ class Cat{ def eat()={println("cat eat ...")} } }
Scala學習之包、引用和訪問修飾符
本文主要內容: 1、包 2、引用 3、訪問修飾符 1、包 Scala採用了Java完整的包機制,不同點是Scala可以進行包的巢狀,而Java只能從包的層級的根開始。 package launch{ class Booster3 } packag
怎樣把引用的jar包和本項目一起導出成jar文件
微軟雅黑 eclips main方法 我們 family ng- 微軟 content into 之所以要導出Runnable JAR。是由於我們希望將引用到的Jar包與本項目一起進行導出,所以不要選Jar file 選File/Export...然後
動態可視化 數據可視化之魅D3,Processing,pandas數據分析,科學計算包Numpy,可視化包Matplotlib,Matlab語言可視化的工作,Matlab沒有指針和引用是個大問題
com 行數據 操作dom 判斷 互動 otl .org zhang mouse 動態可視化 數據可視化之魅D3,Processing,pandas數據分析,科學計算包Numpy,可視化包Matplotlib,Matlab語言可視化的工作,Matlab沒有指針和引用是個大問
大資料之scala(二) --- 對映,元組,簡單類,內部類,物件Object,Idea中安裝scala外掛,trait特質[介面],包和包的匯入
一、對映<Map> ----------------------------------------------------- 1.建立一個不可變的對映Map<k,v> ==> Map(k -> v) scala> val map
定製開源庫之jar包和.so的引用
定製開源庫很多時候只是程式碼的開源,這次的要求是把jar包和.so檔案都放到庫裡,中間的過程還是有點曲折的。 首先我找到的是: 優雅的釋出Android開源庫(論JitPack的優越性) 本來我是按照這
Scala練習七包和引入
包和引入摘要:在本篇中,你將會了解到Scala中的包和引入語句是如何工作的。相比Java不論是包還是引入都更加符合常規,也更靈活一些。本篇的要點包括:1. 包也可以像內部類那樣巢狀2. 包路徑不是絕對路徑3. 包宣告鏈x.y.z並不自動將中間包x和x.y變成可見4. 位於檔案
快學Scala學習筆記及習題解答(5-8類、物件、包和繼承)
本文scala使用的版本是2.11.7 第五章 類 5.1 基本操作 class Person { // Scala會生成一個私有的final欄位和一個getter方法,但沒有setter val timeStamp = ne
Scala入門到精通——第八節 包和引入
本節主要內容 包的作用與定義 包的作用域與引入(import)的使用方法 訪問控制 包物件 import高階特性 內部類 包的作用與定義 同java中的包、C++中的名稱空間一樣,Scala中的包主要用於大型工程程式碼的組織同時也解決命名衝突的問
functions and closures are reference types-函式和閉包是引用型別
Closures Are Reference Types In the example above, incrementBySeven and incrementByTen are constants, but the closures these constants
快學scala 第七章 包和引入 讀書筆記及習題答案程式碼
chapter 7 包和引入 標籤:快學scala 一、筆記 scala中的包名是相對的,原始檔的目錄與包之間沒有強制的關聯關係,完全可以在同一檔案中為多個包貢獻內容。 包可以包含類、物件和特質,但是不能包含函式和變數的定義,這是java虛擬機器的侷限,但是包物件
快學Scala習題解答—第七章 包和引入
8 包和引入 8.1 編寫示例程式,展示為什麼 package com.horstmann.impatient 不同於 package com package horstmann packa
Scala中包的定義、巢狀、包物件、包的引用
1、 包的定義 /** * 自定義Spark.navigation包 */ package spark.navigation{ abstract class Navigator{
重複引用jar包和造成64k問題的解決方法
今天打包app,打包失敗,丟擲一個異常: Error:The number of method references in a .dex file cannot exceed 64K. Learn how to resolve this issue at
將eclipse java程式打包成jar的總結(包括工程中沒有引用外部jar包和有引用外部jar包兩種情況)
一.當eclispe java工程中沒有引用外部jar包時: 選中工程---->右鍵,Export...--->Java--->JAR file--->next-->填寫jar file的路徑及名稱-->next-->next-
maven工程pom.xml配置引用的jar包和最終打出war包中的jar包版本號不一致——mvn命令的應用
今天在打包一個maven工程時,發現有個jar包(暫且叫它A.jar),在pom.xml中配置的明明是2.3的版本,打出的war包裡的A.jar怎麼都是1.0的版本,導致war包部署不起來。為此掙扎了1個多小時,pom依賴檢查和環境檢查。最後終於想到可以利用maven的mvn