test.apply {
c = if (a==null || b==null) null else a/b
}
:あなたは次の操作を行うことができるようにとにかく、if else
はKotlinにおける発現もある
class Test {
var a: Double? = null
var b: Double? = null
var c: Double? = null
get() = if (a==null || b==null) null else a/b
}
テストは、あなたのクラスではない場合、あなたは常に拡張機能を使用することができます。
fun Test.updateC() {
c = if (a==null || b==null) null else a/b
}
およびそのそしてちょうどテストクラスの他の関数と同様にテストインスタンス上で呼び出すことができます。test.updateC()
あなたが/ bを計算する時にNULL値を許可するかどうかについて確認する必要があります場合は示されているように、あなたは一時的な変数を使用する必要があります@ジョシュアの答えは以下の通りです。 https://discuss.kotlinlang.org/t/kotlin-null-check-for-multiple-nullable-vars/1946/11チケット:または、以下Kotlinディスカッション読みhttps://youtrack.jetbrains.com/issue/KT-20294
を私は特に機能を備えた再利用可能な解決策のように:のように使用することができます
fun notNull(vararg args: Any?, action:() -> Unit) {
when {
args.filterNotNull().size == args.size -> action()
}
}
:
c = null
notNull(a, b) { c = a/b }
あなたが取得してください'c'を' a'と 'b'を渡すのと同じコード/メソッドに入れていますか? 'C'は常にA' 'から計算する場合には、ビジネスロジックは、クラスはデータのみを保持することになっていない、とのコードのさらに7余分な行 – elect
は、bが、私が望んでいた、まさに未 –