突如其來收到Google Play的通知信✉️,也沒想過會遇到這種狀況,原因是因為之前寫了一支可以用來抓Instagram公開帖子的原始照片的app,然後在取名的時候想說要跟Instagram有點關聯,所以用了Gram作為app名稱的一部分,也就是因為這樣侵犯了商標權,被Instagram申訴了,這應該可以算是某種成就吧😅,但不是一件好事啊😣
繼續閱讀
在類別裡this表示當前類別的物件,因為它作用的範圍是在巢狀中最內層的區塊,所以如果是在內部類別或匿名類別裡,要怎麼存取到外部類別的物件,kotlin提供了方便的表示式,類別本身都會隱含一個同名的標籤,透過this加上這個標籤的方式就可以指定是代表哪個類別物件了
繼續閱讀
繼承(Inheritance)是物件導向中很重要的概念,我們可以為具有相似特性的子類別(derived class)共同繼承自一個父類別(base class),這樣不同的子類別都會有相同的特性(父類別的屬性和函數),又各自擁有自己的屬性和函數,可以達到差異化並減少重複撰寫相同的實作代碼
繼續閱讀
類別在物件導向就是用程式來模擬描述現實世界中實體的特性(屬性,property)和行為(函數,function),這些實體就是從類別衍生出來的物件,物件就會擁有這個類別的屬性和函數,藉由物件間的互動來完成程式的要求
class Person { /*...*/ }
// 如果沒有主體內容則可以省略大括號
class Empty
The root of the Kotlin class hierarchy. Every Kotlin class has Any as a superclass.
Any是kotlin所有不可為空類別(也就是沒有?)的父類別,相當於java的Object類別,如果要允許空值還有一個Any?,而且嚴格來說Any?才是所有類別的根類別,雖然Any和Any?並沒有繼承的關係
繼續閱讀
NullPointerException已經可以說是java開發者的日常😱,只要程式邏輯上任何一處沒有經過深思熟慮都可能引發NPE的異常,那我們來看看kotlin在這一點上如何擺脫我們的困擾而做到Null safety的
繼續閱讀
In Kotlin, everything is an object in the sense that we can call member functions and properties on any variable.
在Kotlin所有的變數都是物件,可以呼叫它的成員函數和屬性,宣告會用到兩個關鍵字是val和var
- val:用在唯讀(read-only)變數,只能賦值一次,類似在java中加上final,建議優先使用
- var:是可變(mutable)變數,值可以被修改,當需要重新給值的情況再改用var