Kotlin
hongzhily
梦想有一天拥有自己的帝国,之后探索宇宙,攻克癌症,发展文化事业
展开
-
Kotlin 静态常量写法
Java静态常量写法public class javaTest { public static final int DELAY_TIME = 1000;}Kotlin静态常量写法class kotTest { companion object { const val DELAY_TIME:Int = 1 }}原创 2019-06-28 14:33:53 · 1549 阅读 · 0 评论 -
if表达式和for循环
fun test(): Unit { /** * if 表达式可以直接将结果返回给变量 * */ var x = 2; var result = if(x%2==0) "偶数" else "奇数" /** * 循环可以加标签,通过@定位标签 ...原创 2019-08-06 18:15:50 · 198 阅读 · 0 评论 -
变量var和常量val以及懒加载
// const 声明的在编译时就已知道值,类似C中的宏// const 修饰的可以写在类的最外层,或者companion object中const val constStr:String = "134"class TestObj{ companion object{ const val constStr2:String = "134" } // ...原创 2019-08-06 18:02:51 · 262 阅读 · 0 评论 -
kotlin内部类
内部类:默认静态内部类,用inner修饰为非静态内部类class InnerClass{ // 默认静态 class SubClass{} // 加inner修饰变为非静态 inner class InnerSubClass{}}fun main(args:ArrayList<String>){ // 静态可以直接new ...原创 2019-08-08 18:59:18 · 1176 阅读 · 0 评论 -
kotlin属性代理
属性代理是指属性完全被代理类来实现,var的代理类需要实现setValue和getValue,而val的代理类只需要getValue方法即可var i:Int by IntDelegate()val j:Int by ValIntDelegate()class IntDelegate{ operator fun getValue(thisRef: Any?, property: K...原创 2019-08-08 18:32:19 · 222 阅读 · 0 评论 -
kotlin扩展方法
扩展方法是指不改变类的源码的情况下为类增加自定义的方法fun String.times(times: Int): String { var builder = StringBuilder() for (i in 0 until times) { // 这里的this只得调用者本身 builder.append(this) } ret...原创 2019-08-08 18:08:53 · 1141 阅读 · 0 评论 -
kotlin可见性关键字
在kotlin文件中修饰方法,默认为public,不能用protectedprivate fun test1() {}internal fun test3() {}// public 为默认public fun test4() {}// protected会报错protected fun test2() {}fun main(args:ArrayList<String>...原创 2019-08-08 17:46:33 · 677 阅读 · 0 评论 -
==和===
/** * == 比较内容 * === 比较内容+地址 * */ fun testEqus() { var src1:Int = 134 var src2:Int = 134 // true Log.d("test", (src1 == src2).toString()) // t...原创 2019-08-05 21:00:56 · 81 阅读 · 0 评论 -
is关键字用法
open class Parent { fun hello():Boolean { return true }}class Son : Parent() {}fun main(arrayList: Array<String>) { var parent: Parent = Son() if (parent is Pare...原创 2019-08-05 20:15:28 · 730 阅读 · 0 评论 -
as关键字使用
open class Parent{}class Son:Parent(){}fun main(arrayList: Array<String>) { var parent:Parent = Son() // 失败 抛出异常 var son:Son = parent as Son // 失败 返回为空 var ...原创 2019-08-05 20:07:10 · 572 阅读 · 0 评论 -
Kotlin回调写法
接口声明public interface CallBack { void onCallBack();}Java回调写法public class TestJava { public void setCallBack(CallBack callBack) { } public void test() { setCallBack(new Ca...原创 2019-06-28 15:31:18 · 3046 阅读 · 0 评论 -
Kotlin判空
Java判空public class TestJava { public void test(String data) { if (data != null) { Log.d("TestJava", "TestJava"); } } public void testArray(ArrayList<String...原创 2019-06-28 15:14:51 · 920 阅读 · 0 评论 -
Kotlin单例写法
Java 单例的写法public class Single { private static Single sInstance = null; private Single() { } public static Single getInstance() { if (sInstance == null) { sInst...原创 2019-06-28 14:59:20 · 637 阅读 · 0 评论 -
具名参数,默认参数,可变参数
class TestObj { /** * 变长参数可以写在任何位置,前中后 * 一个函数只能有一个变长参数 * */ fun test1(data1: Int, vararg data2: String, data3: Int) {} fun test2(vararg data1: Int, data2: String, data3: Int...原创 2019-08-06 18:29:25 · 681 阅读 · 0 评论