> For the complete documentation index, see [llms.txt](https://kuroclass.gitbook.io/kotlin/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kuroclass.gitbook.io/kotlin/yu-kotlin-de-chu-ci-jian-mian.md).

# 與Kotlin的初次見面

#### [下載IntelliJ IDEA](https://www.jetbrains.com/idea/download)

Kotlin是啥？能吃嗎？

Kotlin是由JetBrians公司在俄羅斯聖彼得堡的開發團隊設計出來的程式語言，於2011年發布初始版本。Google在2017年的開發者年會中宣布在Android上為Kotlin提供最佳支援。

> *“嗯對～Kotlin是程式語言，不能吃。”*
>
> ‘蛤……那他可以拿來幹嘛？’

## 什麼！我可以把Kotlin編譯在各個不同的平台上執行!?

當我們在編譯Kotlin程式碼的時候，可以選擇的平台編譯：

### **Java虛擬機器（JVM）**

Kotlin在設計當初就設計成可以跟Java交互運作，我們可以在Kotlin的程式碼裡使用Java的程式庫，也可以在Java裡面使用自己寫好的Kotlin程式。

### **Android**

Android Studio為Kotlin提供了最佳支援，讓我們能夠使用很多方便的Kotlin函式庫。

### **Client端與Server端JavaScript**

我們可以把Kotlin程式碼轉譯成JavaScript，在瀏覽器上執行。也可以使用一些Client端和Server端的技術，如WebGL、Node.js

### **原生app**

也可以把Kotlin編譯成原生機器碼，如iOS、Linux。

而我們主要的目標是學習使用Kotlin編寫Android app，所以我們會把重點聚焦在Android的開發上。

> ‘我已經知道Kotlin很方便了～可是為什麼我們不使用Java來開發Android呢？’
>
> *“作為一個後起之秀，Kotlin自然有他的各項好處。而使用他的時候我們自然也可以利用他的各項好處，讓我們之後編寫程式的時候不需要在電腦上放乖乖、或是在註解裡面寫佛經，也能讓程式碼順利運行喔～”*
>
> ```kotlin
> //                       _ooOoo
> //                      o8888888o
> //                      88" . "88
> //                      (| -_- |)
> //                      O\  =  /O
> //                    ___/`---'\____
> //                 .'  \\|     |//  `.
> //                /  \\|||  :  |||//  \
> //               /  _||||| -:- |||||_  \
> //               |   | \\\  -  /// |   |
> //               | \_|  ''\---/''  |   |
> //               \  .-\__       __/-.  /
> //             ___`. .'  /--.--\ `. . __
> //          ."" '<  `.___\_<|>_/__.'  >'"".
> //         | | :  `- \`.;`\ _ /`;.`/ - ` : | |
> //         \  \ `-.   \_ __\ /__ _/   .-` /  /
> //    ======`-.____`-.___\_____/___.-`____.-'======
> //                       `=---='
> //  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> //                佛祖保佑       永無BUG
> ```

## 那使用Kotlin的優點有哪些呢？

### **安全的程式碼**

因為語言特性Kotlin在撰寫的時候可以避免掉很多其他程式語言經常出現的錯誤，例如使用Java寫Android程式時經常冒出的 NullPointerException。

### **簡短、清楚、易於閱讀**

Kotlin的程式碼寫起來相較於Java來說顯得相當的簡短，並且在語法上也較於容易閱讀，可以讓我們少花很多時間在理解程式碼上。

> ‘那我們的還等什麼！快點開始寫我們的第一個程式了啊！’
>
> “別急～我們先做一些IDE的基本的介紹吧！”

## **容我為各位介紹IntelliJ IDEA**

[下載IntelliJ IDEA](https://www.jetbrains.com/idea/download)

IntelliJ IDEA是JetBrains提供的免費IDE，裡面提供了我們在開發Kotlin專案時會用到的所有功能，絕大部分在開發中需要的功能都可以在上面找到，而且他的提示功能非常之強大，讓我們能更輕鬆、快速的完成專案。首先就讓我們按下"NEW PROJECT"開啟一個新專案吧！

<figure><img src="https://cdn-images-1.medium.com/max/800/1*1E8MnuXnQ3s23iszY4TjLA.png" alt=""><figcaption></figcaption></figure>

設定說明：

* Name: 專案的名字
* Location: 專案放置的位置
* Create Git repository: 是否啟用Git
* Language: 使用語言，現在我們要使用Kotlin
* Build system: 建置系統，因為Android是使用Gradle建置，所以我們一樣選擇Gradle
* JDK: 使用的JDK版本
* Gradle DSL: Gradle建置語言，我們選擇Kotlin

> ‘我在創建專案的時候有看到Android耶，那我之後是不是可以不需要下載Android Studio，直接使用IntelliJ IDEA開發Android專案？’
>
> *“Android Studio其實就是IntelliJ IDEA的Android特化版，他在載下來的時候就幫你安排好了所有開發Android專案需要特別使用到的東西，而IntelliJ IDEA是通用型的IDE，有一些東西在載下來的時候並不是必備的，需要額外安裝。所以在經驗還沒有足夠的時候還是先使用Android Studio，等熟悉裡面的功能之後，也可以只用IntelliJ IDEA開發Android專題囉～”*

## **專案建好了！然後呢？**

我們可以先來看看左側的專案資料夾

<figure><img src="https://cdn-images-1.medium.com/max/800/1*EVcAfogrgC3N0q8F2swJVQ.png" alt=""><figcaption></figcaption></figure>

我們會看到有一個 *Main.kt* 的檔案在 **src/main/kotlin** 的資料夾下面。這個路徑很重要！基本上我們幾乎所有的檔案都會在這個路徑底下。那我們來看看*Main.kt* 裡面寫了什麼。

<figure><img src="https://cdn-images-1.medium.com/max/800/1*rMcAQp-4eQdg6lcr0t0_oA.png" alt=""><figcaption></figcaption></figure>

這就是一個最最最基本的Kotlin程式碼，按下左邊的執行按鈕並選擇Run Main.kt

<figure><img src="/files/CzfeVKCHKsC57HQOeXvI" alt=""><figcaption></figcaption></figure>

這邊就會顯示執行的成果，我們成功印出了Hello World!
