Kotlin Android开发学习记录

来源:互联网 发布:知乎首页背景 编辑:程序博客网 时间:2024/05/22 02:37

1, Singleton的写法

Kotlin写法

object TestFile {    fun sum(a: Int, b: Int): Int {        return a * b    }}

在kotlin 中通过object关键字定义单例类
在JAVA中调用方法如下

int result = TestFile.INSTANCE.sum(6, 2);Toast.makeText(MainActivity.this, result + " is the result", Toast.LENGTH_SHORT).show();

注意事项:
- java 中无需使用new TestFile()来调用,kotlin中自动处理了private构造方法, java中调用会提示类似private accessible constructor一类的错误, new调用的话,需要类型为class, 不能是object
- 定义object关键字后,默认类型就是public, 无需再定义public访问类型,输出Int和String类型


2, String与Int混用

//这样写法会提示编译错误
println(a * b + ” result”)
//这样写可以输出成功
println(“” + a * b + ” result”)
//或者这样也可以输出成功
println((a * b).toString() + ” result”)


3, TODO - 抛异常

fun start(): String = TODO("fdsafdsaf")//抛出以下异常错误信息Exception in thread "main" java.lang.Exception: fdsafdsaf    at KotlinUtilKt.TODO(kotlinUtil.kt:1)    at TaskKt.start(Task.kt:1)    at TestStart.testOk(Test.kt:6)

4, 类型转换

强制类型转换可以用以下方法

var iterator = collection.iterator() as Iterator//或者var iterator: Iterator<Int> = collection.iterator()

5, joinToString() - 简单处理字符串拼接方法

看joinToString的源代码如下,已经默认自定义好分隔符,前缀,后缀等属性,可以直接拿来修改使用

fun <T> Array<out T>.joinToString(    separator: CharSequence = ", ",     prefix: CharSequence = "",     postfix: CharSequence = "",     limit: Int = -1,     truncated: CharSequence = "...",     transform: (T) -> CharSequence = null): String (source)

例如,需要输入a b c d e ,返回[a-b-c-d-e], 只需要如下代码:

 fun joinStrings(strs: Array<String>): String {        return strs.joinToString(prefix = "[", postfix = "]",separator = "-")    }

6, 方法返回类型

方法返回类型可以自动判定, fun() = 这种写法可以自动判定返回类型,下边例子可以动态判定是返回Int 还是 String

fun testType(obj : Any) = if (obj is Int) (obj.toString() + " Integer") else " others" 

7, 方法参数

如果方法有多个参数,并且赋值默认参数值,在调用方法时可以只写入需要变化的参数值,例如

 fun testParams(a: Int = 4, b: Int = 5, c: Int = 6) = a + b + c fun testParams2() = testParams(b = 10)

在调用testParams2()时,得到的结果是20, a, c都采用默认值,b被重新赋值为10


8, Raw Strings

定义字符串的方法,有一种叫做raw string, 例如下:

fun getString(str: String):String{   return     """  price:  ${'$'}999  name: ${str}    """}

当输出调用getString(“aaaa”)时,结果是:

      price: $999      name: aaaa

而且支持换行,很方便

0 0
原创粉丝点击