「Android/kotlin/基本」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→for) |
(→空やnull判定) |
||
行36: | 行36: | ||
} else { | } else { | ||
Log.i("exists", "not empty")// "hoge" | Log.i("exists", "not empty")// "hoge" | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | ==lateinitとは== | ||
+ | インスタンスや変数が使われるタイミングで初期化するもの。nullが入らないように設計されたもの。DIとかでも使えそう。 | ||
+ | <pre> | ||
+ | class MainActivity : AppCompatActivity() { | ||
+ | lateinit var user: User | ||
+ | override fun onCreate(savedInstanceState: Bundle?) { | ||
+ | super.onCreate(savedInstanceState) | ||
+ | setContentView(R.layout.activity_main) | ||
+ | user.name = "taro" | ||
+ | Log.i("MainActivity", "user.name=" + user.name) | ||
+ | } | ||
} | } | ||
</pre> | </pre> |
2020年2月19日 (水) 14:47時点における版
null許可
var name: String = null // これだと入らない var title: String? = null // ?をつけるとnullが許可される
読み込みのみ
valを使う
val description = "hoge" description = "hoge2" // 許可されない
!!の意味
var nickname: String? = null if (!TextUtils.isEmpty(nickname!!)) { Log.i("test", nickname) }
nullが入ってたときにkotlin.KotlinNullPointerExceptionを発生させる。
nullじゃない時の値
text1.setText(name ?: "hello");
型
Int // 数字 String // 文字 Boolean // 真偽 Array<String> // 文字配列 Unit // voidみたいなもの、Unitは省略可能
空やnull判定
var name: String? = null if (TextUtils.isEmpty(name)) { Log.i("exists", "empty") // "", null } else { Log.i("exists", "not empty")// "hoge" }
lateinitとは
インスタンスや変数が使われるタイミングで初期化するもの。nullが入らないように設計されたもの。DIとかでも使えそう。
class MainActivity : AppCompatActivity() { lateinit var user: User override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) user.name = "taro" Log.i("MainActivity", "user.name=" + user.name) } }