name: String, val twitterId: String, val githubId: String, val company: String) println("Name : ${aakira.name}") println("Twitter Id : ${aakira.twitterId}") println("Github Id : ${aakira.githubId}") println("Company : ${aakira.company}")
: User data class User(val name: String, val twitterId: String, val githubId: String, val company: String) print("Name : ${aakira.name}”) println("Github Id : ${aakira.githubId}") print("Twitter Id : ${aakira.twitterId}") println("Company : ${aakira.company}") $ whois
{ super.onCreate(savedInstanceState) // bad getActivity().finish() // good activity.finish() } } val array = ArrayList<Int>() // bad array.get(0) // good array[0]
10L // Long val bar = 100f // Float fun Context.isConnectToWifi() = (getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager) .activeNetworkInfo?.type == ConnectivityManager.TYPE_WIFI
Hoge() private val drawablePadding: Int by lazy { activity.resources.getDimensionPixelSize(R.dimen.drawable_padding) } // non-null & var private lateinit var hoge: Hoge private var hoge: Hoge = Delegates.notNull() // nullable & var private var hoge: Hoge? = null
fun fun1() {} fun fun2(bar: Bar) {} fun fun3(foo: Foo) {} } // bad val hoge = Hoge() val foo = Foo() val bar = Bar(foo) hoge.fun1() hoge.fun2(bar) hoge.fun3(foo) // good Hoge().run { fun1() Foo().let { fun2(Bar(it)) fun3(it) } } スコープ関数を使って回避可能だが、過度にやりすぎると読みづらくなるデメリットもある 思考しないと読めない場合は変数宣言しても良い