[nullVal] null code block [notnull] not null code block [notnull] null code block 例2的输出显然是不符合预期的。 在文章一开始的那个例子里,由于it.name = "Hello"的返回值是Unit,是一个非空的值,因此能够如预期,呈现出和if-else等价的效果,但这里实际上会留下一个隐藏的坑。 写代码的时候,肯定...
kotlin没有java的 X ? y : z 的三目运算语法, 只能写成if else, 有点类似python. 计数统计部分 count().blockingGet()返回的便是最后写了多少个文件的个数了. 其他: 替换的实现在哪里呀? 其实就在这里 就是这一句 .compose(processStrategy) processStrategy是一个由你实现的 ObservableTransformer , 随意发挥...
If not null and true if (someObject?.status == true) doThis() 1. 或 someObject?.takeIf{ it.status }?.apply{ doThis() } 1. If not null and true or else if (someObject?.status == true) { doThis() }else { doThat() } 1. 2. 3. 4. 5. 或 someObject?.takeIf{ it.statu...
1. let函数 1.1 简介 1.2 使用方法 // 作用1:使用it替代object对象去访问其公有的属性 & 方法object.let{it.todo()}// 作用2:判断object为null的操作object?.let{//表示object不为null的条件下,才会去执行let函数体it.todo()}// 注:返回值 = 最后一行 / return的表达式 1. 2. 3. 4. 5. 6. 7....
kotlin 中的三元运算符表达式写法 if ( a > b) a else b when 条件语句 fun main(args : Array<String>){var week : Int = 3when(week){1 -> print("星期一")2 -> print("星期二")3 -> print("星期三")4 -> print("星期四")5 -> print("星期五")6 -> print("星期六")7 -> prin...
var temp = if(a != null) a.b else null val v = if(temp != null) temp else c 它等价于: val v = if(a == null || a.b == null) c else a.b 实际使用时一定要注意 ?. 前后是否都可能为 null。 ?: 与流程控制语句的搭配使用 ...
1.2.1、if...else...判断 例: varstr :String?="123456"str =nullif(str ==null){ println("变量str为空") }else{ println("str.length =>${str.length}") } 输出结果为: 变量str为空 1.2.2、使用符号?.判断 该符号的用法为:可空类型变量?.属性/方法。如果可空类型变量为null时,返回null ...
takeIf(predicate: (T) -> Boolean): T? = if (predicate(this)) this else null 从这里我们可以注意到: 是从T 对象本身调用,即 T.takeIf; predicate 函数将 T 对象作为参数; 根据predicate 的结果最终返回 this 或 null。 根据以上的特点,我们可以推导出其合适的用法: 1. 因为其由 T 对象本身调用,...
funmain(){//定义是使用?,表示它可能为空vara: String? ="null"//使用?a = a?.let {//it就是a本身if(it !="null") it.capitalize()else"hello"} println(a) } 结果: hello 6.空合并操作符 空合并操作符就是简化的三目运算符,如果:号左边是空,则执行后面的 ...
task.run(){task=DispatchedContinuation:执行父类DispatchedTask中的run方法if(exception !=null) {//异常处理continuation.resumeWithException(exception) }else{//非异常处理,我们看这里continuation.resume(getSuccessfulResult(state)){ resumeWith(Result.success(value)){while(true) {这里有个死循环 ...