木薯
个人专栏

最新文章

使用Kotlin Spek 2来做Android的行为驱动测试

Spek是Kotlin一个很强大的行为驱动测试(behavior-driven testing)的框架。在android里使用spek2,我们可以很容易地定义一个清晰的,可读性高的测试用例。地址:https://www.spekframework.org/Spek2是在JUnit 5上运行的一个框架。在使用之前需要安装JUnit5.安装JUnit 5打开project级别的build.gradle

解决Spring session报错JedisDataException: ERR unknown command 'CONFIG'

在线上部署服务时,spring-session报了一个redis的错误,如下:redis.clients.jedis.exceptions.JedisDataException: ERR unknown command 'CONFIG'原因是spring-session调用了CONFIG命令来配置Keyspace notifications功能。而线上环境的redis基于权限的考虑,禁止应用服务执

Kotlin Playground

Kotlin官方提供了try.kotlinlang.org作为在线运行kotlin的平台给初学者来尝试以及学习kotlin。我们可以在try上面在线运行kotlin代码片段,而不需要打开一个IDE。JetBrains现在开源了kotlin-playground的项目,它允许我们在自己的博客/网站上直接嵌入可以在线运行的kotlin代码片段。安装主要有两种安装方法:在页面直接引入js文件使用软件包管

Kotlin传递函数作为参数的方式

Kotlin传递函数作为参数,可以有:命名参数,位置参数以及在参数列表外,以lamba的形式传递。示例data class Person(val name: String,                &nb

Kotlin:类的定义

基本定义Kotlin使用关键词class定义类,如:class User { } 声明类主要包括三部分:类名:必选,类的名称,一般以大写字母开头。类头:可选,类头包括type parameter(如泛型),主构造(primary constructor)等。类体:可选,在Kotlin,类体是可选的,它有大括号{}括起来。类头和类体是可选的,一个最简单的类可

Kotlin:return与跳转

Kotlin有两种跳转:循环跳转(break与continue)和返回跳转(return)。Labellabel语法:labelName@ label可以放在任何表达式之前,用来标记表达式。如loop@ for (i in 1..100) {     // ... } break和continueb

Kotlin:循环语句for与while

For语句使用for语句做迭代需要满足:提供一个迭代器Iterator。使用成员函数提供迭代器如Array:operator fun iterator(): Iterator<T> 注意:iterator()函数需要使用operator标记。使用扩展函数提供迭代器除了添加成员函数iterator提供迭代器外,也可以通过extension function来添加iterator

Kotlin:流程控制之条件语句 if 和 when

在Kotlin有两种用于判断条件的语句if 和when。if在Kotlin,if既可以是条件语句,仅仅用作条件判断,还可以是条件表达式,表达式会返回一个值。传统的条件判断if语句var max = a  if (a < b) max = b if-elsevar max:&

Kotlin: package和import

packageKotlin的代码结构是通过源文件和package组织。在源文件的开头声明package,如package foo.bar fun baz() {} class Goo {} // ... 在声明的package源文件里的所有内容均属于此package。如示例里的baz函数和类Goo全名分别为foo.bar.baz和f

Kotlin实现Java的三元条件运算

在Kotlin没有类似Java的三元条件运算:a ? b : c 在Kotlin有几种等效的方法:ifval r =if (a) b else c whenval r = when(a) {     true 

Kotlin:基本类型 - 字符串

Kotlin字符串使用String表示类型,为不可变类型。字符串表示字符串有两种表示方式:单行和多行。 单行单行使用双引号把内容括起来。val s = “Hello,World” 如果需要在单行里表示换行的字符串需要对换行符转义val s = “Hello, World \n” 多行多行用来表示原始的字符串,

Kotlin:基本类型 - Char与Boolean

字符类型Kotlin使用Char表示字符,与Java不同的是,它并不能直接和数字做类型转换。字符表示它们使用单引号''把字符括起来特殊字符:特殊字符串使用反斜杠开头,如\t, \b, \n, \r, \', \", \\ and \$其他一些字符可以使用Unicode编码,如'\uFF00'数字转换Kotlin的字符不能直接和数字做类型转换,但我们可以它们的unicode码的相对差来做数

Kotlin:数组的基本操作

Kotlin使用Array类来表示数组,构造函数为:<init> Array(size: Int, init: (Int) -> T) size:数组大小init:初始化数组创建数组Kotlin提供了几种方法方便我们创建数组,包括:构造函数,标准库提供的arrayOf, arrayOfNulls 和emptyArray等 。构造函数// 创建 一个值

Java 8 Stream API转换到Kotlin集合API

Kotlin提供的集合操作的API相对Java 8 Stream的API简洁很多。下面是Java 8 Stream API转换到Kotlin集合API。 映射属性聚合为列表// Java:   List<String> names = users.stream().m

Kotlin空值(Nullable Value)的处理以及转换

 使用Java稍不留神很容易导致NullPointException。Kotlin的类型系统使用可空类型(Nullable Type)旨在消除null引用导致的代码出错。Kotlin要求我们必须检测可空类型的值,只有非null的值才允许访问。有几种方式来处理可空类型的值,以避免null引用的出现。 条件检查var nullableStr?: Str

Kotlin:基本类型 - 数值

内置数值类型Kotlin和Java的数值类型很接近,内置了6中数值类型:Double:64 Float:32 Long:64 Int:32 Short:16 Byte:8 在Java里,char类型也是一种数值类型,可以和其他数值类型转换,而在Kotlin则没有把char类型作为数值类型。字面量整数整数类型:Shot,Int和Long。和Java一样,Long类型的字面量在数字后面加上L来表示。&

Kotlin:命名规范

命名风格默认和Java的命名风格一样。使用驼峰命名风格类型以大写开头方法和属性以小写开头使用4个空格缩进公开的函数应该写文档 冒号分隔类型和子类型的冒号前有一个空格分割实例变量名与类型的冒号前没有空格示例:interface Foo<out T : Any> : Bar {   &nbs