https://github.com/JetBrains/kotlin/releases/download/v1.2.61/kotlin-compiler-1.2.61.zip
這是 Kotlin JVM 版本, 還需要事先安裝好 JAVA 才能執行. 用 unzip 可將它解壓縮, 解壓縮的目錄用 mv 指令把它改成 $HOME/kotlinc, 先寫一個 bash script 設定好環境變數 PATH, 將它存成 ktenv 檔案,方便以後使用:
#!/bin/bash
alias path='echo "$PATH"'
function pathadd() {
if [ -z "$1" ]
then
PATH=$PATH:$(pwd)
elif [ -d "$1" ]
then
PATH=$PATH:$1
fi
}
pathadd $HOME/vscode/bin
pathadd $HOME/kotlinc/bin
開啟終端機, 執行上述文稿, 並執行 VS code
. ktenv
code
在 VS code裏面點擊側邊欄的拼圖工具(extensions), 搜尋 Kotlin Language 並安裝它, Kotlin 敘述結尾並不需加上分號,寫一個簡潔的 kotlin 程式碼;
// my.kt
fun main(args: Array < String >
var g = {s:String -> s.length } // 定義 g = λ(s), 輸入字串,取出字串長度,
var f = {l:Int -> (l%2)==1 } // 定義 f = λ(l), 輸入整數,判斷是否為奇數
listOf("1", "22", "333", "4444", "55555") // 產生字串陣列的物件
.filter { x -> f(g(x) ) } // 使用 λ(x) = f(g(x)) 過濾字串
.forEach { println(it) } // 列印出來
mapOf( 1 to "一", 2 to "二", 3 to "三", 4 to "四") // 產生字典的物件
.filter { (x, _) -> f(x) } // 使用解構式 (key,value),底線忽略.用 λ(x)=f(x) 過濾字串
.forEach{ (key, value) -> println("[$key] $value") } // 列印出來
}
開啟下面板的終端機(TERMINAL) 將暫存檔放到 ramdisk (/tmp),避免寫到磁碟,執行以下指令:
kotlinc my.kt -include-runtime -d /tmp/jartmp.jar && java -jar /tmp/jartmp.jar
或是在 VS code 點選上面板的 Tasks -> Configure Task, 將上述指令寫進 tasks.json 檔案裏面,只要修改制訂 label 及 command 就可以了:
{
// custom tasks.json
// ...
"versions" : "2.0.0"
"tasks" : [
{
"label" : "runkt"
"type" : "shell"
"command" : "kotlinc my.kt -include-runtime -d /tmp/jartmp.jar && java -jar /tmp/jartmp.jar"
}
]
}
關閉 tasks.json 並存檔(save), 這時在 Tasks -> Run Tasks 就會看到剛剛新增的工作 runkt , 點擊它會開啟終端機並執行.另外也可以安裝擴充插件像是 Code Runner, 安裝完後會在右上方多出一個三角形按鈕 (run button),點擊 run 按鈕就可以執行 Kotlin 文稿了.
另外可以上官網 https://blog.jetbrains.com/kotlin 下載 Kotlin native comipler,
我下載 Linux 版本
https://download.jetbrains.com/kotlin/native/builds/releases/0.8.2/linux/kotlin-native-linux-0.8.2.tar.gz
用 tar -zxvf 解壓縮後,再用 mv 指令將目錄改成 $HOME/konan, 把 konan/bin 加入 PATH, 之後用 konanc 編譯 my.kt 成可執行檔:
pathadd $HOME/konan/bin
konanc my.kt -o my
編譯完輸出 my.kexe , 編譯的速度很慢要花上一段時間, 最後執行看看
my.kexe
本身就可執行, 無需 JVM, 看看輸出結果:
1
333
55555
[1] 一
[3] 三
與 JVM 版的是一模一樣的, 但速度超快,酷 !
p.s. 美化數學符號
1. 先安裝 Fira code 字型,可到官方網站下載 https://github.com/tonsky/FiraCode 打包的 zip檔用 unzip 解壓縮後, 把裏面 ttf 目錄全部複製到 /usr/local/share/fonts 接著執行 fc-cache -f 讓 linux 系統重新讀取系統字型
sudo cp -r ttf /usr/local/share/fonts
fc-cache -f
2. 開啟 VS code 點選上面 File -> Preferences -> settings 開啟檔案 settings.json 修改設定, 接著在右邊欄點擊標籤 USER SETTINGS 或是 WORKSPACE SETTINGS 加入以下兩行設定後關閉並存檔(save):
{
"editor.fontFamily": "'Fira Code'",
"editor.fontLigatures": true,
}
安裝完 fira code 之後一些像是 ==, != , -> 等等符號就改變造型或連接起來了,讓程式變得更像數學方程式,感覺比較順眼
沒有留言:
張貼留言