如果用Help->Eclipse marketplace安裝不成功的話,可以用Help->Install new software
<a href="https://github.com/JetBrains/kotlin" target="_blank">kotlin github源代碼</a>
<a href="http://kotlinlang.org/docs/reference/whatsnew11.html" target="_blank">kotlin官網和線上執行代碼</a>
個人覺得學習kotlin文法的話,用eclipse可能比較友善點,直接寫直接運作。
1. package
<code>package</code> <code>my.demo</code>
<code>import</code> <code>java.util.*</code>
2. 函數定義
fun函數有兩個Int參數和一個Int傳回值
<code>fun sum(a: Int, b: Int): Int{</code>
<code> </code><code>return</code> <code>a + b</code>
<code>}</code>
函數表達式和傳回值
<code>fun sum(a:Int, b: Int) = a + b</code>
Unit 函數無傳回值
<code>fun sum(a: Int, b: Int):Unit {</code>
<code> </code><code>println(</code><code>"a: ${a} , b: ${b}"</code><code>)</code>
無傳回值函數
<code>fun sum1(a: Int, b: Int){</code>
<code> </code><code>println(</code><code>"aa: ${a}, bb: ${b}"</code><code>)</code>
3. 局部變量
不可變局部變量(val)
<code>val a: Int = </code><code>1</code> <code>// immediate assignment</code>
<code>val b = </code><code>2</code> <code>// `Int` type is inferred</code>
可變局部變量
<code>var x = </code><code>5</code>
<code>x += </code><code>1</code>
4. 注釋
// 和 /**/
5. String 模闆
<code>var a = </code><code>1</code>
<code>val s1 = </code><code>"a is ${a}"</code>
<code>a = </code><code>2</code>
<code>val s2 = </code><code>"${s1.replace("</code><code>is</code><code>", "</code><code>was</code><code>")}, but now is ${a}"</code>
6. 條件表達式
<code>fun maxOf(a: Int, b: Int): Int{</code>
<code> </code><code>if</code><code>(a > b) {</code>
<code> </code><code>return</code> <code>a</code>
<code> </code><code>}</code><code>else</code> <code>{</code>
<code> </code><code>return</code> <code>b</code>
<code> </code><code>}</code>
使用if表達式
<code>fun maxOf(a:Int, b: Int) = </code><code>if</code><code>(a > b) a </code><code>else</code> <code>b</code>
7. 使用可為null的值和null檢查
一個引用必須被明确标記為可能為null
<code>fun maxOf(a:Int, b: Int): Int? {</code>
<code> </code><code>println(</code><code>"a: ${a}"</code><code>)</code>
<code> </code><code>return</code> <code>null</code>
8. 類型檢查和動态轉換
<code>fun getStringLength(obj: Any): Int? {</code>
<code> </code><code>if</code> <code>(obj is String) {</code>
<code> </code><code>return</code> <code>obj.length</code>
<code> </code>
9. 循環
<code>val items = listOf(</code><code>"a"</code><code>, </code><code>"b"</code><code>, </code><code>"c"</code><code>, </code><code>"e"</code><code>)</code>
<code>for</code><code>(zz in items) {</code>
<code> </code><code>println(zz)</code>
<code>} </code>
<code>//或者</code>
<code>val items = listOf(</code><code>"a"</code><code>, </code><code>"b"</code><code>, </code><code>"c"</code><code>, </code><code>"e"</code><code>, </code><code>"f"</code><code>)</code>
<code> </code><code>for</code><code>(idx in items.indices) {</code>
<code> </code><code>println(items.get(idx))</code>
<code> </code><code>println(</code><code>"value: ${items[idx]}"</code><code>)</code>
10. while 循環
<code>var ind = </code><code>0</code>
<code>while</code><code>(ind < items.size) {</code>
<code> </code><code>println(</code><code>"value: ${items[ind]}"</code><code>)</code>
<code> </code><code>ind ++;</code>
11. when 表達式
<code>fun descrbe(obj: Any): String =</code>
<code>when (obj) {</code>
<code> </code><code>1</code> <code>-> </code><code>"one"</code>
<code> </code><code>"Hello"</code> <code>-> </code><code>"greeting"</code>
<code> </code><code>else</code> <code>-> </code><code>"else default"</code>
12. 範圍
檢查一個數字是否在一個範圍時可以使用in
<code>val x = </code><code>10</code>
<code>val y = </code><code>8</code>
<code>if</code><code>(x in </code><code>1</code><code>.. y+</code><code>1</code><code>) {</code>
<code> </code><code>println(</code><code>"x in..."</code><code>)</code>
<code>}</code><code>else</code> <code>{</code>
<code> </code><code>println(</code><code>"not in"</code><code>)</code>
檢查一個數字不在一個範圍
<code>if</code> <code>(x !in </code><code>1</code><code>..y+</code><code>1</code><code>) {</code>
<code> </code><code>println(</code><code>"b not in "</code><code>)</code>
<code> </code><code>println(</code><code>"b x in"</code><code>)</code>
疊代一個範圍
<code>for</code><code>(x in </code><code>1</code><code>..</code><code>5</code><code>) {</code>
<code> </code><code>println(x)</code>
級數周遊一個範圍
<code>for</code><code>(x in </code><code>1</code><code>..</code><code>5</code> <code>step </code><code>2</code><code>) {</code>
13. 使用集合
周遊
<code>var lists = listOf(</code><code>"a"</code><code>, </code><code>"b"</code><code>, </code><code>"c"</code><code>)</code>
<code> </code><code>for</code><code>(ele in lists){</code>
<code> </code><code>println(ele)</code>
使用in檢查某個元素是否在某個集合
<code>when {</code>
<code> </code><code>"a"</code> <code>in lists -> println(</code><code>"a in list"</code><code>)</code>
<code> </code><code>"b"</code> <code>in lists -> println(</code><code>"b in list"</code><code>)</code>
使用lambda文法過濾集合
<code>var lists = listOf(</code><code>"acake"</code><code>, </code><code>"apple"</code><code>, </code><code>"orange"</code><code>)</code>
<code> </code><code>lists.filter { x->x.startsWith(</code><code>"a"</code><code>) }</code>
<code> </code><code>.sortedBy { it }</code>
<code> </code><code>.map { x->x.toUpperCase() }</code>
<code> </code><code>.forEach{println(it)}</code>
本文轉自rongwei84n 51CTO部落格,原文連結:http://blog.51cto.com/483181/1931412,如需轉載請自行聯系原作者