java.jpi在线_解析Kotlin-koans学习kotlin编程(一)

源起

从C#转java,写了一段时间之后觉得超级啰嗦,借着Kotlin成为了android开发的官方语言的契机发现kotlin也许能成为c#转java的程序员的福音。

在学习kotlin的过程中发现了Kotlin-koans这个官方练习很有意思,所以接下来会写一系列的博文来记录学习的过程。

koans 的意思是以心传心,所以这个项目名就真的太传神了。这个项目就是让你通过一系列有针对性的练习来熟悉Kotlin的语法。这些练习都是TDD的,也就是编程让失败的单元测试可以通过。本系列文章会结合kotlin-koans里的41个练习点来逐个展开与大家一起学习kotlin,争取不烂尾。

kotlin-koans:https://github.com/Kotlin/kotlin-koans

准备工作

java jdk

首先你得有java,1.6+

$ java -version

java version "1.8.0_102"

Java(TM) SE Runtime Environment (build 1.8.0_102-b14)

Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)

kotlin作为jetbrains自家孩子当然还是用jetbrains的idea来最为顺手,天生就有ide支持的语言除了c#有过这种待遇好像就没有其他了。而kotlin-koans是用gradle构建的,所以你需要准备好idea和gradle。idea没什么好说的,主要是gradle在我朝是一个非常麻烦的事,虽然它有一万种方法(都不怎么行得通)

gradle的一万种安装方法

1. SDKMAN方式

sdkman适用于*nix系统,windows上还要依赖zip与unzip。

$ sdk install gradle 4.5.1

HomebrewmaxOS系统,这也是比较可行的一种方式。

$ brew install gradle

Scoop 是 Homebrew在windows上的替代品,但是要在powershell里,相当难用起来.

$ scoop install gradle

最后是我非常推荐的Chocolatey windows下面一种比较好的安装软件的方式,具体的可以看我的博文《windows上更酷的软件安装方式—chocolatey》。

$ cinst -y gradle

由于万能的墙的存在,上面的方式基本都是看人品。

最后我们推荐手工安装最保险(手工滑稽 -_-#)。

git上来下来项目后,用idea导入会自动下载gradle,打开目录gradle下的gradle-wrapper.properties看到distributionUrl=https://services.gradle.org/distributions/gradle-3.0-all.zip,使用其他工具去这个地址下载,然后把zip包不解压,直接放到C:\Users\用户.gradle\wrapper\dists\gradle-3.0-all\6v8c6qg2jpi8twyfv2a5s9mii目录下(6v8c6qg2jpi8twyfv2a5s9mii是一个随机值),然后关闭idea再次打开项目即可完成。

开启学习之旅

Kotlin-koans项目有2个分支,master分支是我们要完成的任务,可以理解为我们要完成的试卷, resolutions 分支是我们的答案,所以确保答题完再去看这个分支,别作弊!!!

src目录是我们要去实现每一个task的目录:

├─iii_conventions

├─ii_collections

├─iv_properties

├─i_introduction

│ ├─_0_Hello_World

│ ├─_10_Object_Expressions

│ ├─_11_SAM_Conversions

│ ├─_12_Extensions_On_Collections

│ ├─_1_Java_To_Kotlin_Converter

│ ├─_2_Named_Arguments

│ ├─_3_Default_Arguments

│ ├─_4_Lambdas

│ ├─_5_String_Templates

│ ├─_6_Data_Classes

│ ├─_7_Nullable_Types

│ ├─_8_Smart_Casts

│ └─_9_Extension_Functions

test目录对应就是测试代码,我们task的目标就是让测试通过。

伟大的语言都是从Hello_World开始。Kotlin-koans的第一个task旨在帮助你熟悉它的环境以及工作方式。

task0的代码如下:

fun task0(): String {

return todoTask0()

}

对应task0的测试代码如下:

@Test fun testOk() {

assertEquals("OK", task0())

}

在idea中打开task0的测试,点击测试案例前面的按钮可以单独运行这个测试。

85a610b25e9a

image.png

这里运行结果肯定是不通过的,也可以通过命令行的方式来运行测试:

$ ./gradlew test --tests i_* # run tests in part 1

我们修改task0的代码如下:

fun task0() = "OK"

接下来再重复上面的运行测试步骤,这次就可以通过了,这样一个task就顺利完成了。

85a610b25e9a

image.png

一些资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值