teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

若干の変更をしました

2017/10/10 15:29

投稿

hiramekun
hiramekun

スコア428

answer CHANGED
@@ -1,10 +1,10 @@
1
1
  まず、この際は`lateinit`を使うのは本質的ではありません。
2
- なぜなら、lateinitというキーワードを見たプログラマは、そのインスタンスは必ずどこかで初期化されていると思うからです。
2
+ なぜなら、`lateinit`というキーワードを見たプログラマは、そのインスタンスは必ずどこかで初期化されていると思うからです。
3
3
 
4
- もしもcursorが初期化されない状態があり得るのなら、それはオプショナルで`private var cursor : Cursor? = null`と書くべきです。
4
+ もしもcursorが初期化されない状態があり得るのなら、それはオプショナルで`private var cursor : Cursor? = null`と書くべきです。nullであり得ることを明示的にプログラマに示すので理解しやすいコードになります。
5
5
 
6
6
  そして、問題の呼び出しですが、kotlinの安全呼び出しを使えば簡単に書くことができますのでそんなに手間だとは思いません。
7
- さらに、プログラムを書く上で重要なのは、**書く手間よりも読む手間を減らせ**ということです。コードというものは圧倒的に書く時間よりも読む時間と回数が多くなるものです。ですので、多少面倒だな、と思っても面倒臭がらずに書く精神は大切ですよ。(その上で、スマートな書き方を模索するのはとても良いことです!)
7
+ さらに、プログラムを書く上で重要なのは、**書く手間よりも読む手間を減らせ**ということです。コードというものは圧倒的に書く時間よりも読む時間と回数が多くなるものです。ですので、多少面倒だな、と思っても面倒臭がらずに本質的、もしくは理解しやすいように書く精神は大切ですよ。(その上で、スマートな書き方を模索するのはとても良いことです!)
8
8
  ```java
9
9
  private var cursor : Cursor? = null
10
10
  // 中略

1

tipsを追記しました

2017/10/10 15:29

投稿

hiramekun
hiramekun

スコア428

answer CHANGED
@@ -4,6 +4,7 @@
4
4
  もしもcursorが初期化されない状態があり得るのなら、それはオプショナルで`private var cursor : Cursor? = null`と書くべきです。
5
5
 
6
6
  そして、問題の呼び出しですが、kotlinの安全呼び出しを使えば簡単に書くことができますのでそんなに手間だとは思いません。
7
+ さらに、プログラムを書く上で重要なのは、**書く手間よりも読む手間を減らせ**ということです。コードというものは圧倒的に書く時間よりも読む時間と回数が多くなるものです。ですので、多少面倒だな、と思っても面倒臭がらずに書く精神は大切ですよ。(その上で、スマートな書き方を模索するのはとても良いことです!)
7
8
  ```java
8
9
  private var cursor : Cursor? = null
9
10
  // 中略