版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/walq1314/article/details/84029172
kotlin 日常遇到的麻烦 新手入坑 请多指教
1. 匿名内部类:
lambda表达式匿名内部内
val kt = object :KTName(){
//TODO 实现
}
var race2: Runnable = Runnable { println("Hello world !") }
private val mOnCheckedChangeListener: RadioGroup.OnCheckedChangeListener =
RadioGroup.OnCheckedChangeListener { group, rid -> }
2. 继承类:
//这里class 修饰词语有 open 和deta
class DataModel(var string:String = "sss",str:String?): Model(str){
constructor() : this("xxx", null)
//init 是默认构造方法实现函数 可以使用 类名上定义的 string 和 str
init{ }
//这里是写静态方法的
companion object { val a = 100 }
}
//open表示可继承
open class Model(str:String){ init{ print(str) } }
//data 表示是个数据类型 这里必须有一个数据通过构造方法传入
data class Data(var str:String){ }
3. 序列化:
//kotlin 这个对象需要导包
java.io.Serializable
4. 循环: for forEach
for (item in collection) print(item)
val string = arrayListOf(1,2).let{
//咋不变颜色呢
string.forEach { }
}
for (i in 0..index) { }
//在这里循环8次为0至7
for(i in 0..7 [step 1]){ }
//与前面第一个相反,也是闭区间
for(i in 7 downto 0 [step -1]){ }
//在这里循环7次为0至6
//kotlin真的是为开发者着想的
//多出这一个是为数组历遍而设计的
for(i in 0 until 7){ }
链接:https://www.jianshu.com/p/841ba165fe54
5. 当遇到数字大于Kotlin数的值得时候
参考文章 : https://blog.csdn.net/Mingyueyixi/article/details/78093184
val color = 0xEE000000.toInt()
6. Kotlin 里面是没有数组这种说法的 可以这样写
private val integers = arrayOfNulls<Int>(4)
val string = arrayOf(1,2.3)
val string = arrayListOf(1,2)
val string = arrayListOf<Int>()
7. 可变数组 vararg
看到这个*了吗 传入java的时候需要些个 * 我搞不懂为啥要这样
扫描二维码关注公众号,回复:
4395271 查看本文章
fun ofFloat(propertyName: String, vararg values: Float) {
val anim = ObjectAnimator()
anim.target = null
anim.propertyName = propertyName
anim.setFloatValues(*values)
}