title: Kotlin - How to decide between "lateinit" and "nullable variable"?
body: <p>I am confuse for lateinit and nullable variable, which one to use for variable.</p>
  
  <pre><code>lateinit var c: String
  var d: String? = null
  c = "UserDefinedTarget"
  
  // if not added initialisation for c than throws UninitializedPropertyAccessException
  if (c == "UserDefinedTarget") {
      //do some stuff.
  }
  //not throws any exception whether d is initialise or not.
  if(d == "UserDefinedTarget") {
       //do some stuff
  }
  </code></pre>