jetbrain kotlin试用笔记

1 篇文章 0 订阅

笔记

试用了一下kotlin语言,挺有意思的:一个基于jvm的语言,能够在jdk6上享用jdk8的lambda、deferred method、stream语法、C#的delegate、类scala语法和类型推断、ruby的code block 等特性。



以前弄过一段时间的scala,实在无法忍受scala的编译速度和一次编写到处编译的特性(字节码不兼容)、天书般的APIdoc。不谈语法,为了一些特性,scala把java的集合类都重新实现了一遍----能不用jdk原生的api就不用,这和kotlin刚好相反,基本上是基于jdk的api通过语法糖来做扩展,所以kotlin说自己是简化版的scala,学习门槛也更低了。


kotlin可以认为是一个不啰嗦的java,从编译成javascript的歪路回到重点支持android mobile开发,现在已经被誉为andorid的swift。支持编译成javascript之所以被认为邪路,想想TypeScript、coffeescript、Dartjs、Haxe,kotlin的这个方向对java程序员来说只是一个鸡肋。服务器端有scala、groovy,而且kotlin团队不愿意与eclipse xtend团队合作,本以为kotlin会逐渐泯然于众多jvm语言中,没想到别出心裁切入android移动开发,现在已经被誉为andorid的swift,相对于java,kotlin提供的语法糖至少能提高20%的效率。


javaer在用jdk8之前,特别是android开发同学应该试试kotlin。我用kotlin开发了一个阿里云oss上传工具,整个过程比较顺畅。


kotlin的语法点:

https://realm.io/cn/news/droidcon-michael-pardo-kotlin/

官方example:

http://try.kotlinlang.org/

知乎上的评论

http://www.zhihu.com/question/25289041


和Java代码互相调用之后在jvm上执行,需要进行maven配置:

<dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-stdlib</artifactId>
            <version>${kotlin.version}</version>
        </dependency>
</pre><pre name="code" class="html"><plugin>
                <artifactId>kotlin-maven-plugin</artifactId>
                <groupId>org.jetbrains.kotlin</groupId>
                <version>${kotlin.version}</version>


                <configuration/>
                <executions>
                    <execution>
                        <id>compile</id>
                        <phase>process-sources</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>test-compile</id>
                        <phase>process-test-sources</phase>
                        <goals>
                            <goal>test-compile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

打包成可执行文件:

<plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.4</version>
                <executions>  <!--执行器 mvn assembly:assembly-->
                    <execution>
                        <id>make-jar</id>
                        <!--名字任意 -->
                        <phase>package</phase>
                        <!-- 绑定到package生命周期阶段上 -->
                        <goals>
                            <goal>single</goal>
                            <!-- 只运行一次 -->
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <finalName>cdnoss</finalName>
                    <archive>
                        <manifest>
                            <mainClass>com.alipay.dpc.alisis.CdnOssKt</mainClass>
                            <!-- 你的主类 -->
                        </manifest>
                    </archive>

                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <outputDirectory>./</outputDirectory>
                    <!-- 你的输出路径 -->
                </configuration>
            </plugin>


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值