我是Kotlin(I的新手,有Web/JS經(jīng)驗)。
我試圖訪問下面的函數(shù),但我無法訪問(根本沒有顯示)。假設它位于對象SomethingUtil
內(nèi)部,并使用其他文件導入
fun Int.something(num:Int): Int {
return num
}
val result = SomethingUtil.something
(不訪問/顯示),但當我嘗試在沒有關鍵字Int
或Double
的情況下訪問時,我沒有問題
fun something(num:Int): Int {
return num
}
val result = SomethingUtil.something
但這里沒問題
我正在試圖從官方文檔中理解/找到什么意思(很明顯,這個函數(shù)將是整數(shù)),但不知道這是什么意思(我認為它是中綴似乎不是)
添加
Int.something
意味著“向Int
的行為添加函數(shù)”。這稱為“擴展function.”。此類函數(shù)的用法類似于1.something(2)
。在該函數(shù)的大括號內(nèi),調(diào)用this
將返回調(diào)用它的Int
,或者在本例中返回1
。不幸的是,擴展函數(shù)不能在定義它們的類之外訪問,但當您需要在同一類中多次執(zhí)行類似操作時,它們?nèi)匀缓苡杏谩?/p>
以下面兩個類為例。
我無法從
main()
方法中訪問前兩個函數(shù),因為這會導致編譯器錯誤。因此,我只限于訪問其他三個。然而,給定這個示例,您可能會看到這個對象中正則函數(shù)和擴展函數(shù)之間的區(qū)別。