Kotlin學習之雙冒號

2021-10-07 06:41:04 字數 1328 閱讀 6048

最新在複習kotlin相關的知識,看到乙個平時不注意的點,就是::的使用,平時開發使用都是ide提示,順手一改,今天覆習看到了這個知識點,就順手複習記錄一下

kotlin 中 雙冒號操作符表示把乙個方法當做乙個引數 ,傳遞到另乙個方法中進行使用,通俗的來講就是引用乙個方法。先來看一下例子:

object kotlinlearn 

fungetresult

(str1: string, str2: string)

: string =

"result is "

funlock

(p1: string, p2: string, method:

(str1: string, str2: string)

-> string)

: string

funlock

(p1: string, p2: string, method:()

-> boolean)

: string

/** * 另外乙個類

*/class test

}}

fun lock(p1: string, p2: string, method: (str1: string, str2: string) -> string): string

fun lock(p1: string, p2: string, method: () -> boolean): string

這兩個方法分別需要乙個lamda表示式,乙個是兩引數string,並且返回string的,乙個是無參函式,返回boolean型別的。

這樣,這兩個函式就可以以::形式傳參 並傳入我們的getresult 和 test函式。

這裡有一點需要注意的就是,如果在同乙個類裡的方法,可以直接::method,但是如果在另乙個類裡面,就需要另乙個類的例項::method 了。

首先,肯定不一樣的,但是在學習過程中我以為是一樣的,所以走了彎路,比如**這麼寫的時候

if

(testinstance::test)

我以為會和普通方法呼叫一樣

if

(testinstance.

test()

)

但其實根本不一樣 啊,所以看一下定義

kotlin 中 雙冒號操作符 表示把乙個方法當做乙個引數 ,傳遞到另乙個方法中進行使用,通俗的來講就是引用乙個方法

這種寫法只是乙個引數。需要傳遞到另乙個方法中使用,所以千萬不要混淆~~

特此記錄。

Kotlin 雙冒號 使用

kotlin 中 雙冒號操作符 表示把乙個方法當做乙個引數,傳遞到另乙個方法中進行使用,通俗的來講就是引用乙個方法。先來看一下例子 fun main args array param str1 引數1 param str2 引數2 fun getresult str1 string,str2 str...

C 冒號與雙冒號用法

1.冒號 用法 1 類名冒號 定義類的繼承。2 建構函式後面的冒號 分割作用,類給成員變數賦值。初始化列表,更適用於成員變數的常量const型。struct 3 public 和private 後面的冒號 後面定義的所有成員都是公有或私有的。直到下乙個 public 或 private 出現為止。p...

C 中的單冒號與雙冒號

1.單冒號 用法 1 表示機構內位域的定義 即該變數佔幾個bit空間 typedef struct 2 建構函式後面的冒號起分割作用,是類給成員變數賦值的方法,初始化列表,更適用於成員變數的常量const型。struct 3 public 和private 後面的冒號,表示後面定義的所有成員都是公有...