/**
* 描述:擴展:對既有的類增加新功能而無需繼承該類,即便無法獲取其源代碼
* 主要作用是"立即"為相關類整體上添加"工具類(Utils)"方法或屬性,高效優雅。
* Kotlin支持:擴展函數,擴展屬性。
* 與接受者類中參數、名稱都一樣的擴展是無效的。
* 盡量避免與已有的名字重名,如果一定要重名,參數名和類型也要不一樣。
* 作者:jet
* 創建時間: 2017-11-22 11:12
* 修改人:
* 修改時間:
* 修改內容:
*/
//擴展函數:fun 接受者類型。新擴展函數名(參數列表){//函數實現}
//1.普通函數擴展:整數的平方
fun Int.square():Int{
return this*this
}
//2.泛型函數擴展:取數字類型數組中最大的一個元素
fun<T> Array<T>.biggest():T
where T:Number,
T:Comparable<T>{
var biggest = this[0]
for (i in 1..lastIndex){
val element = this[i]
if (element >biggest){
biggest = element
}
}
return biggest
}
//擴展屬性:var 接受者類型。新擴展屬性名:類型
//只能擴展組合屬性,既只能有get和set形式,不能初始化
//1.普通屬性擴展:整數的下一數
val Int.next:Int
get() = this+1
//2.泛型屬性擴展:數字類型的半徑對應的面積 πr2
val<T:Number>T.area:Double
get() = 3.14159*this.toDouble()*this.toDouble()
fun main(args: Array<String>) {
println(11.square())
println(arrayOf(1,2,3).biggest())
println(3.next)
println('A'.toByte().area)
}
25.擴展
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
推薦閱讀更多精彩內容
- 以前我用微軟的HelpPage來自動生成的webAPI幫助文檔。在使用了一段時間后發現只能顯示Controller...