第7步 用型別引數化陣列
陣列是內容是可變的
當你用scala例項化物件時,可以用值和型別來對其引數化
用值來引數化
var big = new biginteger("12345")
用型別來引數化,用方括號括起來型別
var greetstrings = new array[string](3);
"hello")
greetstrings(0) = "hello"
greetstrings(1) = ","
greetstrings(2) = "world! \n"
//0 to 2返回的不是陣列,而是另一種序列
for (i <- 0 to 2)
greetstrings(i)
//會轉換成
greetstrings(0) = "hello"
//會轉換成
greetstrings.update(0, "hello")
更精簡方式建立陣列
var numnames = array("zero", "one", "two")
第 8 步 使用列表
list是不可變的
函式式程式設計的重要理念之一是方法不能有***,乙個方法唯一要做的是計算並返回乙個值
var onetwo = list(1, 2)
var threefour = list(3, 4)
var onetwothreefour = onetwo ::: threefour
var twothree = list(2,3)
var onetwothree = 1 :: twothree
第 9 步 使用元組
元組也是不可變的
var pair = (99, "l")
println(pair._1)
println(pair._2)
多個物件放在括號裡,用逗號隔開
訪問時用句點、下劃線和從1開始的下標來訪問每個元素
第 10 步 使用集合對映
陣列是可變的,列表與元組是不可變的。scala同時還提供了集(set)和對映(map)的可變的和不可變的不同選擇
scala提供了3個特質都叫set,不過它們的完成名稱不相同
//jetset為不可變集
var jetset = set("boeing", "airbus")
// jetset += "leat" 為 jetset = jetset + "leat" 的簡寫。因此jetset不能用val修飾
jetset += "leat"
import scala.collection.mutable
val movieset = mutable.set("hitch", "poltergeist");
//+=為方法,movieset可以用val定義,非重新賦值
movieset += "shrek"
var treasuremap = mutable.map[int, string]()
treasuremap += (1 -> "go to island.")
treasuremap += (2 -> "find big x on ground.")
println(treasuremap(1))
map必須顯示宣告引數型別
scala允許任何物件呼叫 ->方法(隱式轉換)
第 11 步 認識函式式程式設計風格
函式式程式設計與命令式程式設計風格顯著區別是如果**包含任何var變數,它通常是指令式風格的,如果**沒有var,那麼它可能是函式式的。scala鼓勵你更傾向於使用val,傾向於使用無***的函式,這樣的好處之一是讓你的程式更容易測試。
第 12 步 從檔案讀取文字行
object helloworld )
var maxlength = widthofline(maxlengthline);
for (line <- lines)
} else
} def widthofline(line: string): int =
}
scala程式設計第16章學習筆記(1)
list列表的基本操作 head方法獲得列表的第乙個元素 tail方法獲得列表除第乙個元素之外的其它元素 isempty 判斷列表是否為空,空的話返回真 last 獲得列表最後乙個元素 init 獲得除最後乙個元素之外的元素 reverse 反轉列表 字首與字尾 drop take splitat ...
第2章 OpenCV入門
配置環境變數 int main int argc,char ar argc arguments count 從外部輸入字串的總數目。ar arguments values 第乙個位址指向檔案的全路徑名,從第二項開始,依次指向輸入的字串。cv imread 函式源 mat cv imread cons...
第7章 函式入門
7 2 認識引數傳遞 c 的函式可分為系統本身提供的標準函式和使用者自行定義的函式兩種。例如 include 自定義函式是由函式名稱 引數 返回值與返回資料型別組成的,基本語法格式如下 返回資料型別 函式名稱 引數行 示例 include include using namespace std in...