Kotlin 的基本資料型態與 Java 相同,包括:Byte、Short、Int、Long、Float、Double、Char、String、Boolean,但在 Kotlin 它們都是大寫字母開頭。
在宣告時,會用到「var」與「val」的關鍵字,前者是用在可以改變值的變數,後者則是常數。
// Kotlin 的資料型態放在變數名稱後面,並用冒號隔開,最前面則定義變數或常數。
val id: String = "100"
var name: String = "Piyan"
var age: Int = 23
var isActive: Boolean = true
// 若宣告時就給予初始值,資料型態可以省略不寫,Kotlin 會自動定義型態。
// 若要宣告 Long,需在數值後方加上 L 或 l 字眼。
// 若初始值給予的是浮點數,型態為 Double。
// 若要宣告 Float,需在數值後方加上 F 或 f。
val id = "100"
var name = "Piyan"
var age = 23
var isActive = true
activity_main:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="evan.chen.app.mvp_pattern.LoginActivity">
<TextView
android:id="@+id/tv1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center" />
<TextView
android:id="@+id/tv2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center" />
</LinearLayout>
MainActivity:
class MainActivity : AppCompatActivity() {
// 將tv2提昇為類別的屬性,也就是在 MainActivity 內的第一層中定義屬性
// 利用 Kotlin 的 lateinit 語法定義一個之後才會初始化的屬性
lateinit var tv2: TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// tv1 是在 onCreate 方法中宣告的區域變數,在 onCreate 外是無法被存取的
val tv1: TextView = findViewById<TextView>(R.id.tv1)
// 然後從 onCreate 方法中再取得元件
tv2 = findViewById(R.id.tv2)
}
}
謝謝大家願意花時間閱讀,小弟弟我在此鞠躬