kotlin標準函式使用場景

2021-10-11 15:12:03 字數 2634 閱讀 9223

isantialias = true

isdither = true

style = paint.style.fill_and_stroke

strokewidth = 6.0f

}而這時要用let,則需要傳入引數it,並且返回出去,**就顯得冗餘:

//let使用場景:在空判斷時

var paint2 = paint().let

在有對乙個物件有較多初始化工作時,可以用let進行一塊一塊的初始化操作,提高**可讀性

findviewbyid(r.id.detail_card_qr_code_show).run 

mbannerimage = findviewbyid(r.id.detail_card_banner_img)

mbannerimage.onfocuschangelistener = this

mbannerimage.setonclicklistener(this)

mqrcodebtnleft = findviewbyid(r.id.detail_card_qr_code_btn1)

mqrcodebtnleft.onfocuschangelistener = this

mqrcodebtnleft.setonclicklistener(this)

mqrcodebtnright = findviewbyid(r.id.detail_card_qr_code_btn2)

mqrcodebtnright.onfocuschangelistener = this

mqrcodebtnright.setonclicklistener(this)

if (mqrcodebtnright != null) 

mqrcodebtnright?.let

將返回可能為空的改寫為let,更為方便。

在實際寫**過程中,需要選擇合適的作用域操作符,

如果不需要返回自身的,就選擇run或者let,如果使用this作為引數則選擇run操作符;run,with,let返回值為函式塊最後一行,或者指定return表示式。

函式定義:

public inline fun run(block: () -> r): r = block()
功能:呼叫run函式塊。返回值為函式塊最後一行,或者指定return表示式。

示例:

val a = run 

println(a)

執行結果:

run

3

函式定義:

public inline fun t.run(block: t.() -> r): r = block()
功能:呼叫某物件的run函式,在函式塊內可以通過 this 指代該物件。返回值為函式塊的最後一行或指定return表示式。

示例:

val a = "string".run 

println(a)

執行結果:

string

3

函式定義:

示例:println(this)

}println(a)

執行結果:

string

string

函式定義:

public inline fun t.let(block: (t) -> r): r = block(this)
功能:呼叫某物件的let函式,則該物件為函式的引數。在函式塊內可以通過 it 指代該物件。返回值為函式塊的最後一行或指定return表示式。

示例:

val a = "string".let 

println(a)

執行結果:

string

3

函式定義(kotlin1.1新增的):

public inline fun t.also(block: (t) -> unit): t
功能:呼叫某物件的also函式,則該物件為函式的引數。在函式塊內可以通過 it 指代該物件。返回值為該物件自己。

示例:

val a = "string".also 

println(a)

執行結果:

string

string

函式定義:

public inline fun with(receiver: t, block: t.() -> r): r = receiver.block()
功能:with函式和前面的幾個函式使用方式略有不同,因為它不是以擴充套件的形式存在的。它是將某物件作為函式的引數,在函式塊內可以通過 this 指代該物件。返回值為函式塊的最後一行或指定return表示式。

示例:

val a = with("string") 

println(a)

執行結果:

string

3

Kotlin標準函式

kotlin在standand.kt中定義了一些標準函式,方便程式設計師呼叫。let函式的引數是乙個lambda表示式,其呼叫格式如下 obj1.let這裡的obj與obj2實際上是同乙個物件,寫的不一樣是為了避免重名。let函式最常見的應用時輔助判空。請看下面的例子 fun dostudy stu...

Git使用場景 命令使用場景

通過個人使用git時候的遇到的使用場景,熟悉了解相關命令,也記錄一下場景的使用方法。所有場景均在ubuntu16.04 linux 作業系統下,其他作業系統有差異的地方自行查閱相關資料。安裝git sudo apt get install git設定及檢視git配置 user.name和user.e...

mysql json函式使用場景分析

官方文件 軟體版本 mysql5.7 從5.7開始,mysql提供了一些查詢 操作的json函式,這些函式不僅僅可作用於json型別的字段,而且能支援text型別,只要保證是json字串。只是如果text欄位中含有不是json格式的字串,mysql就直接報錯,直接異常反饋是專案中接受不了的,另一方面...