android開発:Kotlin入門(一):変数、定数、方法

7713 ワード

1.kotlinの変数宣言
  var name: String = "   "
  var name: String ? = ""
  var age: Int = 0
  val grade :Int = 0

1.クラスで基本タイプ変数を宣言するには初期化する必要があります:var変数名:タイプ=初期化値
2.変数タイプの後ろに疑問符が付いているのは、変数が空の変数であることを表しています.nullオブジェクトを変数に割り当てると、システムは自動的に空の値を判断し、空の異常の発生を防止します.javaは手動で判断する必要があります.
3.valは可変変数でjavaのfinal修飾子に相当する
2.kotlinのlateinitキーワード
kotlinは変数を宣言するときに初期化する必要があります.もし私たちが宣言したのが私たちのオブジェクトだったらどうしますか?我々のオブジェクトはプログラムで初期化されるからです
したがってkotlinはキーワードを与えた:lateinit 1.作用は可読で書き込み可能な変数でなければならない.すなわちvarで宣言された変数2.空の変数に宣言できない.基本データ型変数には宣言できません.例:Int、Float、Doubleなど、注意:Stringタイプは可能です.3.宣言後、変数を使用する前に値を割り当てる必要があります.そうしないと、UninitializedPropertyAccessException例外が放出されます.
class FristActivity : AppCompatActivity() {
    var name: String = ""
   lateinit var message:Message
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_frist)
        name = message.name
        Log.e("TAG","$name")
    }
}


私たちが上のプログラムを実行して異常を報告したように、Caused by: kotlin.UninitializedPropertyAccessException: lateinit property message has not been initialized翻訳はlateinit修飾の対象がまだ初期化されていないことを意味します.
3.文字列テンプレート($)の使用
  var name: String = "  "
  Log.e("TAG","$name")

出力結果:E/TAG:異常
4.メソッドの名前付け
fun test(name: String, age: Int): String {
        Log.e("TAG", "$name")
        Log.e("TAG", "$age")
        return ""
    }

funメソッド名(パラメータ:パラメータタイプ、パラメータ:パラメータタイプ):戻り値タイプ{}
4.Null値検出
   var str : String? = ""
   str = null
   Log.e("TAG", str?.length.toString())      

控訴コードがjavaに移行すると必ず空の異常を報告します.しかしKotlinはできません.nullが出力されます.実はKotlinが空の値の処理を手伝ってくれたからです.変数:var str:String?=""変数タイプの後に疑問符を付けると、この変数は空の値になります.この変数を呼び出すときに変数の後に疑問符を付けます.str?.length.toString()変数が空の値である場合、システムは自動的に処理してくれるので、空のポインタ異常は報告されません.
メソッド戻り値に空の値判断を行うこともできます.文字列nullを返します.
fun whenName() :String? {
        return  null;
    }