Kotlin
Kotlin,用于现代多平台应用的静态编程语言与 Java™ 和 Android™ 100% 可互操作 .这个专栏是作者学习kotlin过程中的心得和记录。
Sino_Crazy_Snail
我意凌云,追求卓越。
展开
-
Gradle设置全局阿里云maven镜像
Gradle设置全局阿里云镜像去到 $USER_HOME/.gradle目录下,也就是C盘的C:\Users\{你的用户名}\.gradle下,创建init.d目录。在init.d目录下创建.init.gradle.kts脚本,写入apply<AliyunMavenRepositoryPlugin>()class AliyunMavenRepositoryPlugin: Pl...原创 2019-12-06 15:24:48 · 3807 阅读 · 0 评论 -
Kotlin -- Exposed框架入门
Kotlin – Exposed框架入门简介 Exposed1是JetBrains官方支持的SQL/ORM框架,风格颇为类似Django ORM,并且充分发挥了Kotlin的强类型优势。而且简单易学。配置 这里采用Gradle来构建项目,相关配置如下:buildscript { ext.kotlin_version = '1.2.31' //使用...原创 2018-03-27 22:44:23 · 7105 阅读 · 2 评论 -
kotlin -- Type inference failed: Cannot infer type parameter
kotlin – Type inference failed: Cannot infer type parameterimport org.jetbrains.exposed.sql.*import org.jetbrains.exposed.sql.transactions.transactionimport org.jetbrains.exposed.sql.SchemaUti...原创 2018-03-17 20:41:32 · 4129 阅读 · 0 评论 -
Kotlin -- Sealed Classes
Kotlin – Sealed Classes 如果有一个接口类interface Expr,其有两个实现:interface Exprclass Num(val value: Int) : Exprclass Sum(val left: Expr, val right: Expr) : Expr 当你用when表达式处理的时候,必须有else分支来作为默认选择:...原创 2018-03-02 18:15:35 · 1185 阅读 · 0 评论 -
Kotlin -- inner and nested
Kotlin – inner and nested 和Java一样,在Kotlin中,你可以在一个类中声明另一个类。不太一样的是,在kotlin中,嵌套类(nested class)默认不能访问其外部类(outer class)的实例,除非你明确指出可以访问。 在kotlin中,一个没有修饰符的嵌套类与Java中的静态嵌套类一样。为了能让其引用其外部类,需要用inner修饰符指定。...原创 2018-03-02 18:14:07 · 1874 阅读 · 0 评论 -
Kotlin -- 访问控制修饰符
Kotlin – 访问控制修饰符public by default 和Java一样,在Kotlin中拥有public、protected、private修饰符,作用也和Java几乎一样,与Java不同的是,在Kotlin中,类的声明默认是public的。 在kotlin中,还增加了一层访问控制,就是internal修饰符,被internal修饰的类意味着只在模块中可见。模块是K...原创 2018-03-02 18:12:38 · 4090 阅读 · 0 评论 -
Kotlin -- open, final, abstract 修饰符
Kotlin – open, final, abstract 在Kotlin中,所有的类默认都是final的。如果你需要允许它可以被继承,那么你需要使用open声明://这个类具有`open`属性,可以被其他类继承open class People: Speakable{ //`open`的方法被实现和覆写,该方法也是`open`的 override fun s...原创 2018-03-01 23:22:50 · 12591 阅读 · 1 评论 -
Kotlin -- 接口(Interface)
Kotlin – 接口(Interface) interface用于声明一个接口类:interface Speakable{ fun say()} 然后通过:来实现接口,顺带说一下,在kotlin中,:是一个很强大的符号,对应于Java的implements、extends都是用:来实现:class Bob : Speakable { override...原创 2018-03-01 23:20:36 · 3233 阅读 · 0 评论 -
Kotlin - *local function*
Kotlin - local function 想必大家都赞同的一点是好代码都具有复用率高的特点。在初学编程的时候,你的老师也一定告诫过你:“不要让自己写重复的代码。”但在Java中,有时候并不能很好的践行这一原则。 在大多数情况下,尽管你可以使用你的IDE帮你重构那些长得不得了的函数,让其分成更小的代码块,然后重用这些代码块。但这会让你的代码更加难以理解和阅读,这样做的最终结果会...原创 2018-03-01 17:47:55 · 1418 阅读 · 0 评论 -
Kotlin之中缀调用函数
Kotlin之中缀调用函数infix function 对于infix function,其实我们之前已经遇到过了。不知道你对于kotlin的map的使用还有没有印象:fun main(args: Array<String>) { val map = mapOf(1 to "one", 2 to "two") map.map(::println)...原创 2018-02-22 14:06:59 · 1935 阅读 · 0 评论 -
Kotlin基础十二拓展方法和属性
Kotlin基础十二拓展方法和属性 在Kotlin中,有一个很神奇的特性,就是可以为已经存在的类添加方法和属性。具体实现也很简单:fun String.lastChar(): Char = this.get(this.length - 1)fun main(args: Array<String>) { println("Hello, Kotlin".l...原创 2018-02-22 13:19:03 · 1257 阅读 · 0 评论 -
Kotlin基础十一函数默认值
Kotlin基础十一函数默认值函数默认值 周所周知,Java语言并不支持参数使用默认值。有人说这是因为“默认参数”和“方法重载”同时支持的话有二义性的问题,具体真正的原因我不得而知。但是对我个人来说,Java不支持这个特性的确挺让我蛋疼的,虽然说使用方法重载也可以间接实现与默认参数这个特性相同的功能,但这就意味着你得写更多的代码…… 关于这一点,有人说: 假设 Java...原创 2018-02-21 23:35:39 · 2874 阅读 · 0 评论 -
Kotlin基础十之集合
Kotlin基础十之集合 在kotlin中创建集合是一件很简单的事情: val set = setOf(1,23,4,5) val list = listOf(1,23,4,5) val map = mapOf(1 to "one", 4 to "four") 在kotlin中,集合用的是Java标准库里面的集合,你可以在你的机器上写如下代码验证:...原创 2018-02-12 17:48:26 · 1146 阅读 · 0 评论 -
Kotlin基础九'try', 'catch', 'finally'
Kotlin基础九’try’, ‘catch’, ‘finally’‘try-catch-finally’ 和Java一样,你可以使用try-catch-finally去捕获和处理异常,接下来的例子中你可以看到它是如何工作的:fun readNumber(reader: BufferedReader): Int? {//你不需要像Java那样声明这个函数会抛出什么异常 ...原创 2018-02-12 13:22:14 · 1931 阅读 · 1 评论 -
Kotlin基础八之关键字'in'
Kotlin基础八之关键字’in’使用in检查 你可以使用in来检查一个值是否在一个区间内:fun isLetter(c: Char) = c in 'a'..'z' || c in 'A'..'Z'fun isNotDigit(c: Char) = c !in '0'..'9'fun main(args: Array<String>) { pri...原创 2018-02-12 12:14:57 · 1705 阅读 · 0 评论 -
Kotlin基础七之迭代
Kotlin基础七之迭代 在kotlin中,也有for(...)、while (...)、do {...} whlie(...)循环。只不过与其他的类C语言比较起来,又有些许不同:fun main(args: Array<String>) { val languages = arrayListOf("c++", "Java", "Kotli...原创 2018-02-12 11:07:46 · 1687 阅读 · 0 评论 -
Kotlin基础六之再谈'if' 'when'
Kotlin基础六之再谈’if’ ‘when’ 博主之前的文章提到过if是个具有返回值的表达式而不是一个statement。所以,在kotlin中,函数还可以这么写:fun eval(e: Any): Int = if (e is Int) { e.toInt() } else { throw Illega...原创 2018-02-11 22:14:23 · 1304 阅读 · 0 评论 -
[VAL_OR_VAR_ON_FUN_PARAMETER] 'val' on function parameter is not allowed
从KotlinM5.1版本开始,官方已经移除了对函数参数声明为val或var的支持,详见https://blog.jetbrains.com/kotlin/2013/02/kotlin-m5-1/对于这类错误,移除val或var声明即可。...原创 2018-02-11 18:20:53 · 2074 阅读 · 0 评论 -
kotlin基础五之Smart casts特性
kotlin基础五之Smart casts 在大多数情况下,kotlin不需要使用显式转换符,编译器会自动跟踪is检查并在需要时自动插入安全的转换:fun isString(s: Any) = when (s) { is String -> println("$s is a String, length is : ${s.length}"...原创 2018-02-11 21:27:34 · 1595 阅读 · 0 评论 -
kotlin基础之when表达式
kotlin基础<四>‘when’ expression kotlin中的when和Java中的switch有着相似的的功能,但when比switch强大太多太多。 你可以用when来处理枚举类:enum class Size(val abbreviation: String) { SMALL("S"), MEDIUM("M"), LARGE...原创 2018-02-11 13:26:45 · 4112 阅读 · 0 评论 -
Kotlin基础之enum类
Kotlin基础<三>enum类枚举类 在Java中,你不需要为你的enum类传入参数列表,你可以在enum的内部去声明字段和方法。但在Kotlin中,这有点不太一样:enum class Size(val abbreviation: String) { SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRA_LARG...原创 2018-02-11 12:30:57 · 2034 阅读 · 0 评论 -
kotlin基础二类简介
Kotlin基础<二>类和属性 就从JavaBean开始讲起吧。让我们看看在Java当中,JavaBean Person class是如何书写代码的:public class Person { private final String name; public Person(String name) { this.name = ...原创 2018-02-10 19:02:38 · 1240 阅读 · 0 评论 -
Kotlin基础<一>
Kotlin基础<一>[TOC] 还记得当初在大学学习编程语言的第一次编程体验吗?你第一行写的代码是什么呢?对于C程序员来说,恐怕印象最深刻的就是printf("Hello world")了吧?学习Kotlin,我们也从这个经典的例子开始。fun main(args: Array<String>) { println("Hello world")}你发现了kotlin的语法特性了吗?原创 2018-02-10 14:17:54 · 1256 阅读 · 0 评论 -
初窥Kotlin
今天来初步了解一下Kotlin的特性和一些语法,先看例子:package Kt01data class Person(val name: String, //<1> val age: Int? = null) //<2>fun main(vararg args: ...原创 2018-02-10 11:28:16 · 1178 阅读 · 0 评论 -
Kotlin学习环境搭建
导言 kotlin是JetBrains公司开发的一个基于JVM的编程语言,是一种更安全、更简洁的语言。它像python等语言一样拥有一个可以互动的shell。只需要配置好环境变量,然后在命令行上输入kotlinc即可进入shell互动模式。 至于用什么IDE好呢?JetBrains他们家的产品当然还是JetBrains他们家的IDE好用,我建议你用Intellij IDEA来学习kot...原创 2018-02-08 17:03:25 · 1320 阅读 · 0 评论