如果用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,如需转载请自行联系原作者