前往kotlin的路上
寫在前面的絮叨
我是一個安卓程式設計師,前兩天谷歌推薦用kotlin來作為開發Android專案的首選語言,所以我也嘗試著用一個陌生的語言來試一試。這篇文章不寫那些基礎的語法啥的,主要是直接記錄一下在專案直接用kotlin會是怎麼樣的,可能不全,但我會慢慢的補充進來。歡迎大家一起來補充乾貨。
相關連結
官網:http://kotlinlang.org/docs/reference/
github:https://github.com/JetBrains/kotlin
正文
- 定義變數
var hello: String = "hello" //所有的變數必須初始化
var num: Int = 1
var num = 1 // 可以根據上下文推斷出來的變數型別也可以不寫
var nullable: Any = null!! //不會為空的變數要用!!告訴他這東西不會為空
var nullable2: Any? = null //可能為空的直接在變數型別後加問號即可
- 定義常量
val helloWorld: HelloWorld = HelloWorld()//定義常量要用關鍵字val
- 定義可被繼承的類
open class BaseClass { //需要加open關鍵字來宣告此類可以被繼承,類預設為final型別
open fun baseFun(){} //必須被重寫的方法
fun someFun(){}
}
- 繼承
class HelloWorld : BaseClass(){
...
- 定義介面
interface ISomeInterface{
fun doSome(): Any //有返回值的需要註明返回值型別
fun doAnother() //沒有返回值的可以不寫
interface InnerInterface{
fun innerFun(): Unit //沒有返回值的也可以寫Unit 等同於java中的void
fun justDo(): Unit{ //介面裡可以定義具體方法,這個方法不會被要求實現
print("hello world")
}
}
}
- 實現介面
class HelloWorld : ISomeInterface{
...
- 同時繼承父類並實現介面
class HelloWorld : BaseClass(), ISomeInterface.InnerInterface{
...
- 物件非空則
var button: View? = null
button?let {
button.setOnclickListener(...)
}
- 物件為空則
var button: View? = null
button?:let {
button = View()
}
- 如果物件不為空,物件為空(面對比較簡單操作)
var nullable: Any? = null
print(nullable?.toString() ?: "空的")
- 實現匿名內部類,例如:
OnClickListener
(這裡不演示lambda表示式方式)
interface OnClickListener {
fun onClick (view: View): Unit
}
class View{
...
fun setOnClickListener(listener: OnClickListener): Unit{
...
}
}
var button: View = View()
button.setOnClickListener(
object: OnClickListener{ //注意這裡object是關鍵字
override fun onClick(view: View) {
TODO("not implemented") //
}
}
)
- 對ArrayList用法的總結和擴充套件(ArrayList)
程式碼規範(最基本的)
- 在繼承或實現介面時,
:
前要加空格,而用來表示變數型別時則不加 - 命名規範參考java
相關文章
- StartActivity路上的mParent
- 前往參加Google I/O的中國開發者特製攻略Go
- 一些開發者離開Google前往微軟Go微軟
- 網路上的等待事件事件
- 求職路上求職
- 再次前往python學習之路第一天Python
- 乘上這艘“智慧體”之舟,即刻前往智慧未來智慧體
- Kotlin實戰【五】Kotlin中的異常Kotlin
- Kotlin 知識梳理(6) Kotlin 的可空性Kotlin
- Kotlin的互操作——Kotlin與Java互相呼叫KotlinJava
- 走在架構師之山的路上架構
- IP:網路上的擊鼓傳花
- ImageView顯示網路上的圖片View
- 最佳化網路上的芳鄰
- Kotlin開發之旅《二》—Kotlin的基本語法Kotlin
- Kotlin基礎:望文生義的Kotlin集合操作Kotlin
- phper學習go的路上,感觸最深的PHPGo
- Kotlin中的反射Kotlin反射
- Kotlin的解析(下)Kotlin
- Kotlin的解析(上)Kotlin
- Kotlin中的IOKotlin
- Kotlin的LogUtilKotlin
- Kotlin的協程Kotlin
- 【Kotlin】初識Kotlin(二)Kotlin
- Dive Into Kotlin(一):初探 KotlinKotlin
- 【Kotlin】Kotlin環境搭建Kotlin
- kotlin的Gson的使用Kotlin
- Kotlin-48.JavaScript呼叫Kotlin(Call Kotlin from JavaScript)KotlinJavaScript
- AI=機器學習²,我們在去往²的路上AI機器學習
- 無法訪問網路上的芳鄰
- python讀取網路上的csv文Python
- GitHub:網際網路上的創新中心Github
- Kotlin 知識梳理(7) Kotlin 的型別系統Kotlin型別
- PumaAE無人機引導“北極星”前往南極執行任務無人機
- Vormetric&Wakefield:85%消費者拒絕前往曾資料洩露的商店購物ORM
- DBA之路上學習心得
- 如何在技術寫作的路上「碼」不停?
- Cloudflare 中國網路上的效能和安全服務Cloud