Koltin程式設計開發教程 Koltin函式

2021-12-29 21:24:56 字數 1390 閱讀 3209

函式引數可以有預設值,當省略相應的引數時使用預設值。與其他語言相比,這可以減少過載數量。

fun read(b: array, off: int = 0, len: int = b.size) 如果乙個預設引數在乙個無預設值的引數之前,那麼該預設值只能通過使用命名引數呼叫該函式來使用:

fun foo(bar: int = 0, baz: int)

foo(baz = 1) // 使用預設值 bar = 0不過如果最後乙個 lambda 表示式引數從括號外傳給函式函式呼叫,那麼允許預設引數不傳值:

fun foo(bar: int = 0, baz: int = 1, qux: () -> unit)

foo(1) // 使用預設值 baz = 1

foo // 使用兩個預設值 bar = 0 與 baz = 1當函式返回單個表示式時,可以省略花括號並且在=符號之後指定**體即可

fun double(x: int): int = x * 2函式的引數可以用vararg修飾符標記

fun aslist(vararg ts: t): list

//允許將可變數量的引數傳遞給函式

val list = aslist(1, 2, 3)他們是成員函式或擴充套件函式 他們只有乙個引數 他們用 infix 關鍵字標註支援區域性函式,區域性函式可以訪問外部函式的區域性變數

fun dfs(graph: graph)

dfs(graph.vertices[0], hashset())

}高階函式是將函式用作引數或返回值的函式

fun lock(lock: lock, body: () -> t): t

finally

}//body擁有函式了理性:()->t。所以它應該是乙個不帶引數樹並且返回t 型別值的函式。 map方法

fun list.map(transform: (t) -> r): list 如果函式字面值只有乙個引數, 那麼它的宣告可以省略(連同 ->),其名稱是 it。

//如果生命乙個函式型別的可變空量,可以將整個函式型括在括號中並在其後加上問號

var sum: ((int, int) -> int)? = nulllambda表示式的完成語法形式

val sum = lambda 表示式總是被大括號括著, 完整語法形式的引數宣告放在大括號內,並有可選的型別標註, 函式體跟在乙個 -> 符號之後。如果推斷出的該 lambda 的返回型別不是 unit,那麼該 lambda 主體中的最後乙個(或可能是單個)表示式會視為返回值。

kotlin 提供了使用指定的 接收者物件 呼叫函式字面值的功能。 在函式字面值的函式體中,可以呼叫該接收者物件上的方法而無需任何額外的限定符。

//這樣的函式字面值的型別是乙個帶有接收者的函式型別

sum : int.(other: int) -> int

程式設計開發教程 反轉鍊錶

程式設計開發教程 反轉鍊錶,兩種方法 遞迴法思路 在反轉當前節點之前先反轉後續節點。這樣從頭結點開始,層層深入直到尾結點才開始反轉指標域的指向。簡 單的說就是從尾結點開始,逆向反轉各個結點的指標域指向。head 是前一結點的指標域 ps 前一結點的指標域指向當前結點 head.getnext 是當前...

BREW開發教程 3 BREW程式設計概念

乙個模組可以從brew資源檔案中讀取資料,從而使用應用程式可以獲取字串 影象 對話方塊資源。通過在資源檔案存入與語言或裝置相關的資訊,使用得編寫適應不同國家或裝置的應用成為可能。資源檔案可以通過brew的資源編輯器來生成二進位制資源檔案和相應的資源標頭檔案。開發brew應用,可以被編輯成可以模擬器和...

BREW開發教程 3 BREW程式設計概念

乙個模組可以從brew資源檔案中讀取資料,從而使用應用程式可以獲取字串 影象 對話方塊資源。通過在資源檔案存入與語言或裝置相關的資訊,使用得編寫適應不同國家或裝置的應用成為可能。資源檔案可以通過brew的資源編輯器來生成二進位制資源檔案和相應的資源標頭檔案。開發brew應用,可以被編輯成可以模擬器和...