Kotlin 六 Anko和擴充套件的函式

2021-08-01 09:12:05 字數 962 閱讀 5640

anko是jetbrains開發的乙個強大的庫。它主要的目的是用來替代以前xml的方式來使用**生成ui布局,anko包含了很多的非常有幫助的函式和屬性來避免讓你寫很多的模版**。

乙個anko擴充套件函式可以被用來簡化獲取乙個recyclerview

//原始的寫法

//val mrecyclerview = findviewbyid(r.id.person_list) as recyclerview

//使用anko擴充套件函式

val mrecyclerview: recyclerview = find(r.id.person_list)

擴充套件函式是指在乙個類上增加一種新的行為,甚至我們沒有這個類**的訪問許可權。kotlin中擴充套件函式的乙個優勢是我們不需要在呼叫方法的時候把整個物件當作引數傳入。擴充套件函式表現得就像是屬於這個類的一樣,而且我們可以使用this關鍵字去呼叫所有public方法。

舉個例子,我們可以建立乙個toast函式,這個函式不需要傳入任何context,它可以被任何context或者它的子類呼叫,比如activity或者service:

fun context.toast(message: charsequence,duration: int = toast.length_short)
這個方法可以在activity內部直接呼叫:

toast("hello world")

toast("hello world",toast.length_long)

當然,anko已經包括了自己的toast擴充套件函式,跟上面這個很相似。anko提供了一些針對charsequence和resource的函式,還有兩個不同的toast和longtoast方法:

toast

("hello world!")

longtoast

kotlin基本型別 特殊符號和Anko庫

函式定義 函式定義使用關鍵字 fun,引數格式為 引數 型別 fun sum a int,b int int表示式作為函式體,返回型別自動推斷 fun sum a int,b int a b public fun sum a int,b int int a b public 方法則必須明確寫出返回型...

了解Kotlin的擴充套件

kotlin的擴充套件就是在在已有類的基礎上新增屬性和方法 常見的新增屬性和方法有繼承和裝飾 繼承 open class car class audi car 裝飾j class dazhong 擴充套件方法 注意後面都是基於該類的 class student var name string com...

Kotlin資料類和密封類(六)

編譯器會自動從主建構函式中根據所有宣告的屬性提取一下函式 equals hashcode tostring 格式如 muser name john,age 42 componentn functions 對應於屬性,按宣告順序排列 copy 函式 如果這些函式在類中已經被明確定義了,或者從超類中繼承...