「學姐,這麼多的函式妳都能背起來嗎?」詩憶強撐著困倦的眼皮。
「如果人腦這麼厲害,就不用電腦了呢,而且Kotlin每半年會推出新的版本唷。」唯心用輕快的聲線說出殘酷的事實。
詩憶馬上意識清醒了大半。「唔,那怎麼辦呀?」
「常用的函式還是要記著,其他的,請依賴IDE。」唯心在IDE打出小點後,該類別支援的函式清單就顯示了出來,隨著後續打出的字越多,函式清單也逐步因篩選而縮短。「所以才說工程師英文不能太差呢,至少要能猜出需要的函式會叫什麼名字。」
「也是呢,如果班代她當初就知道和加號代表的是plus
函式,就可以查出數字不支援用plus
連接字串。」詩憶喃喃地說。
「因為有字串可以連接數字的前例,再加上我們習慣加號在數學上的意義,所以就誤以為加號萬能了吧。最好還是記得用字串模板拼接變數比較好,模板裡的變數用錢字號開頭,大括號包住名稱,程式就會自動把變數轉成字串和其拼接。」
fun main() {
var a = 1
var b = 2
println("${a}A${b}B")
}
「用.toString()
函式轉換嗎?」詩憶猜測,她已經漸漸明白程式所做的事情都是有所依據的。
「對,因為字串的應用太廣了,因此所有的類別都會帶著這個.toString()
函式,而字串類別也有許多便利的函式。」唯心突然欺身湊了過來,輕聲耳語,「聽過爬蟲程式吧,穿梭於網路的資料大海,為主人尋找特定條件的資訊。比如說主人需要網頁裡的所有圖片,她就將副檔名是圖片檔名的.jpg
、.png
、jpeg
、.bmp
、.webp
等的圖片連結都傳回去。」唯心說著就輕笑了起來,轉身回到原本的位置。「雖說從它人的網站搜集資訊不是少見的例子,但也不能讓人說學校鼓勵這麼做,是不是?」
詩憶偏過頭揉了揉發癢的耳朵。
唯心將講義翻到一頁停下來。「像這樣找尋特定詞語的規則多到甚至都規劃出一個領域——正規式搜尋Regular Expression
,不只各家高階程式語言都有正規式相關的函式,連Microsoft Office的Word這種文件編輯器也支援用正規式的函式搜尋。因為真的是很方便,像電話或是電子郵件信箱這樣遵循規則的字串都可以利用正規式
。比如說當需要將臺灣市話區碼的部分統一加上括號,就可以用取代功能搭配正規式
。講義只列出一部份的規則,完整的版本可以到網站去看。」
https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html
fun main() {
//目標 (02)1234-5678
//^0代表0開頭
//[0-9]{1,3}代表數字只能一到三個,金門馬祖部分地區的區碼扣掉0還有三個數字。
//$1是符合第一個括號條件的字串。
println("02-1234-5678".replace("(^0[0-9]{1,3})(-)".toRegex(), "($1)"))
}
詩憶看著講義上琳瑯滿目的正規式
規則,突然想到了一個問題。「我在IDE有看到搜尋和取代功能,函式重新命名也可以用這個功能嗎?」
唯心搖搖頭。「不,像是函式、類別、變數、參數等重要成員,用重新命名功能比較好,IDE還會幫助檢查是否已經存在相同名字。」