前書き
Android ViewBingdingでFlagmentを使用するときの次のような定型文が使われます。初心者の私には瞬間理解できなかったので、解説を残します。いくつかキーワードを残しますので、説明が不十分でしたら、それを頼りに調べなおしてください。
class TitleFragment : Fragment() {
private var _binding: FragmentTitleBinding? = null
private val binding get() = _binding!! // <---この行について解説
// 以下省略
}
1.!!マーク
これは!! Operator(!!演算子)です。null許容型の変数_bindingに!!を付けることにより、_bindingを強制的に非null許容型に変換し、非null許容型の変数bindingに代入することを可能にしています。
(参考文献:野崎英一著「やさしいKotlin入門」)p219
(参考ページ:The !! Operator)
2. get()
これは、クラスプロパティのアクセッサのゲッターです。
次の構文と同じ意味です。
private val binding: FragmentTitleBinding
get() {
return _binding!!
}
(参考文献:野崎英一著「やさしいKotlin入門」)p166 コード24.7
後書き
参考になりましたか?
なおこの問題は、金田著「はじめてのAndroidプログラミング “第5版”を写経しているときに気が付きました。また、同様の構文は、Android デベロッパードキュメントガイドビュー バインディングにも記述があります。