|
6 | 6 | > Google IO 2017 宣布在 Android Studio 3.0 将默认支持 Kotlin 用于 Android . 请注意 Google 只是宣布 Kotlin 作为 Android 开发的一级语言,并没有说要用其取代 Java ,这里很多无脑媒体进行了过度解读。作为一名合格的程序员,首先要理性看待技术迭代更新,同时要对新事物保持强烈的好奇心。
|
7 | 7 |
|
8 | 8 | ## Kotlin 简介
|
9 | | -Kotlin 来自于捷克一家牛逼软件研发公司 JetBrains ,很多优秀的 IDE,如 IntelliJ IDEA、Pycharm、WebStorm 等都是它的杰作,包括 Google 官方的 Android 开发 IDE -- Android Studio ,也是 IntelliJ IDEA 的插件版。 |
| 9 | +Kotlin 来自于捷克一家牛逼软件研发公司 JetBrains ,很多优秀的 IDE,如 IntelliJ IDEA、PyCharm、WebStorm 等都是它的杰作,包括 Google 官方的 Android 开发 IDE -- Android Studio ,也是 IntelliJ IDEA 的插件版。 |
10 | 10 |
|
11 | 11 | Kotlin 源于 JetBrains 的圣彼得堡团队,名称取自圣彼得堡附近的一个小岛 ( Kotlin Island ) 。JetBrains 在 2010 年首次推出 Kotlin 编程语言,并在次年将之开源。
|
12 | 12 |
|
@@ -824,6 +824,92 @@ class Wrapper<T>(val item: T)
|
824 | 824 | var wrapper = Wrapper("Hello Kotlin")
|
825 | 825 | println(wrapper.item)
|
826 | 826 |
|
| 827 | +``` |
| 828 | +--- |
| 829 | +### 匿名函数 ( Lambda 表达式 ) |
| 830 | +**Java (Java 8)** |
| 831 | +```java |
| 832 | +new Thread(() -> { |
| 833 | + |
| 834 | + System.out.println("Hello Kotlin"); |
| 835 | + |
| 836 | +}).start(); |
| 837 | + |
| 838 | +// 同下 |
| 839 | + |
| 840 | +new Thread(new Runnable() { |
| 841 | + |
| 842 | + @Override |
| 843 | + public void run() { |
| 844 | + |
| 845 | + System.out.println("Hello Kotlin"); |
| 846 | + |
| 847 | + } |
| 848 | + |
| 849 | +}).start(); |
| 850 | + |
| 851 | +``` |
| 852 | +**Kotlin** |
| 853 | +```kotlin |
| 854 | +Thread(Runnable { |
| 855 | + |
| 856 | + println("Hello Kotlin") |
| 857 | + |
| 858 | +}).start() |
| 859 | + |
| 860 | +// Kotlin Lambda 表达式语法 |
| 861 | + |
| 862 | +val sum = {x: Int, y: Int -> x + y } |
| 863 | + |
| 864 | +val sum1: (Int, Int) -> Int = {x, y -> x + y } |
| 865 | + |
| 866 | +val sum2 = fun(x: Int, y: Int): Int { |
| 867 | + return x + y |
| 868 | +} |
| 869 | + |
| 870 | +println(sum(2,8)) |
| 871 | + |
| 872 | +println(sum1(2,8)) |
| 873 | + |
| 874 | +println(sum2(2,8)) |
| 875 | + |
| 876 | +//输出: |
| 877 | +// 10 |
| 878 | +// 10 |
| 879 | +// 10 |
| 880 | +// Hello Kotlin |
| 881 | +``` |
| 882 | +--- |
| 883 | +### Kotlin 高阶函数 |
| 884 | +**Java** |
| 885 | +```java |
| 886 | +// Java 不能直接实现高阶函数 |
| 887 | +``` |
| 888 | +**Kotlin** |
| 889 | +```kotlin |
| 890 | +// 高阶函数,即一个函数可作为高阶函数的参数 |
| 891 | +fun superFunc(desc: String?, method: () -> String) { |
| 892 | + println(desc) |
| 893 | + println(method()) |
| 894 | +} |
| 895 | + |
| 896 | + |
| 897 | +fun argFun() = "我是高阶函数的参数" |
| 898 | + |
| 899 | +//使用高阶函数 |
| 900 | + |
| 901 | +superFunc("这是一个高阶函数 ", ::argFun) |
| 902 | + |
| 903 | +superFunc("这是一个高阶函数 ", { argFun() }) |
| 904 | + |
| 905 | +superFunc("这是一个高阶函数 ") { argFun() } |
| 906 | + |
| 907 | + |
| 908 | +//输出: |
| 909 | +// 这是一个高阶函数 我是高阶函数的参数 |
| 910 | +// 这是一个高阶函数 我是高阶函数的参数 |
| 911 | +// 这是一个高阶函数 我是高阶函数的参数 |
| 912 | + |
827 | 913 | ```
|
828 | 914 | ---
|
829 | 915 | ## 持续更新中。。。
|
0 commit comments