/**
* 描述:擴(kuò)展:對(duì)既有的類增加新功能而無需繼承該類,即便無法獲取其源代碼
* 主要作用是"立即"為相關(guān)類整體上添加"工具類(Utils)"方法或?qū)傩?,高效?yōu)雅。
* Kotlin支持:擴(kuò)展函數(shù),擴(kuò)展屬性。
* 與接受者類中參數(shù)、名稱都一樣的擴(kuò)展是無效的。
* 盡量避免與已有的名字重名,如果一定要重名,參數(shù)名和類型也要不一樣。
* 作者:jet
* 創(chuàng)建時(shí)間: 2017-11-22 11:12
* 修改人:
* 修改時(shí)間:
* 修改內(nèi)容:
*/
//擴(kuò)展函數(shù):fun 接受者類型。新擴(kuò)展函數(shù)名(參數(shù)列表){//函數(shù)實(shí)現(xiàn)}
//1.普通函數(shù)擴(kuò)展:整數(shù)的平方
fun Int.square():Int{
return this*this
}
//2.泛型函數(shù)擴(kuò)展:取數(shù)字類型數(shù)組中最大的一個(gè)元素
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
}
//擴(kuò)展屬性:var 接受者類型。新擴(kuò)展屬性名:類型
//只能擴(kuò)展組合屬性,既只能有g(shù)et和set形式,不能初始化
//1.普通屬性擴(kuò)展:整數(shù)的下一數(shù)
val Int.next:Int
get() = this+1
//2.泛型屬性擴(kuò)展:數(shù)字類型的半徑對(duì)應(yīng)的面積 π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.擴(kuò)展
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 眼兒媚 趙佶 玉京曾憶昔繁華。萬里帝王家。瓊林玉殿,朝喧弦管,暮列笙琶。 花城人去今蕭索,春夢(mèng)繞胡沙。家山何處,忍...
- 開心的三件事 1.吃了仙草加西瓜。味道還好。(西瓜吃得我 半夜被尿憋醒 ><) 2.敲了一篇李笑來的文章。感覺自己...
- 以前我用微軟的HelpPage來自動(dòng)生成的webAPI幫助文檔。在使用了一段時(shí)間后發(fā)現(xiàn)只能顯示Controller...