中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

微信端網(wǎng)站開發(fā)流程圖百度收錄入口提交

微信端網(wǎng)站開發(fā)流程圖,百度收錄入口提交,山西太原建站怎么做,用wordpress仿a站一、概述 為了幫助您根據(jù)使用場景選擇合適的作用域函數(shù)(scope function),我們將對它們進行詳細描述并提供使用建議。從技術(shù)上講,許多情況下范圍函數(shù)是可以互換使用的,因此示例中展示了使用它們的約定俗成的做法。 1.…

一、概述

為了幫助您根據(jù)使用場景選擇合適的作用域函數(shù)(scope function),我們將對它們進行詳細描述并提供使用建議。從技術(shù)上講,許多情況下范圍函數(shù)是可以互換使用的,因此示例中展示了使用它們的約定俗成的做法。

1.let函數(shù)

  • 上下文對象作為參數(shù)(it)提供。

  • 返回值:lambda表達式結(jié)果.

let可以用于在調(diào)用鏈的結(jié)果上調(diào)用一個或多個函數(shù)。例如:

var name = "kotlin"
var sub = name.substring(0,2)
println(sub)

用let重寫上面的例子,不用分配一個新的變量就會直接輸出結(jié)果:

var name = "kotlin"
name.substring(0,2).let {println(it)
}

let代碼塊里,如果只有一個函數(shù),且函數(shù)只有一個參數(shù)it,可以用::代替it參數(shù):

var name = "kotlin"
name.substring(0,2).let(::println)

let代碼塊里操作的數(shù)值為非空值,為了操作非空數(shù)值,需要在let前用?.操作符:

val name: String? = null
name?.let {println(it)
}

為了讓代碼更用閱讀可以自定義變量,代替it參數(shù):

val name: String = "kotlin"
val child: String? = name.substring(0, 2)
child?.let { sub ->println(sub)//sub為自定義的變量代替it參數(shù)
}

2.with函數(shù)

  • 上下文對象作為接收者(this)可用。

  • 返回值:lambda表達式結(jié)果.

?with?不是一個擴展函數(shù):上下文對象this作為參數(shù)傳遞,在lamda表達式里this可以被當(dāng)作接收者.

當(dāng)不需要返回結(jié)果時,推薦用with時,可以引用上下文對象調(diào)用方法。例如,

val name = "kotlin"
with(name){println(this)
}

可以在lamda代碼塊里,引用上下文對象的屬性和函數(shù),例如,

val name = "kotlin"
println("result:${with(name) {length + substring(0, 2).length}}"
)

3.run函數(shù)

  • 上下文對象作為接收者(this)可用。

  • 返回值:lamda表達式結(jié)果

run?跟with作用相同,但run是一個擴展函數(shù)。像let,對象可以通過點符號引用run。當(dāng)lamada表達式中同時有初始化和計算操作,可用run函數(shù)。例如,

class User{var name: String? = nullvar age = 0}User().run {name = "java"age = 99Log.d(TAG,"User:$name,$age")}

你還可以將?run?作為非擴展函數(shù)來調(diào)用。run?的非擴展版本沒有上下文對象,但它仍然返回 lambda 表達式的結(jié)果。非擴展的?run?允許你在需要表達式的地方執(zhí)行多個語句的代碼塊。在代碼中,非擴展的?run?可以理解為“運行代碼塊并計算結(jié)果”。例如,

 var name = "c++"name.run {var y = "123"println("$this,$y")}

4.apply函數(shù)

  • 上下文對象作為接收者(this)可用。

  • 返回值:this對象本身.

因為?apply?函數(shù)返回引用對象本身,主要用于對象的成員操作時,可用apply函數(shù)。主要應(yīng)用appply函數(shù)的地方是對象的配置。對apply調(diào)用可以被當(dāng)作是對象的初始化。

class User {var name: String? = nullvar age = 0fun set(ageParam: Int) {age = ageParam}fun get(): Int {return age}}User().apply {name = "java"age = 99set(100)Log.d(TAG, "User:$name,${get()}")}

另一個?apply?的使用場景是將其包含在多個調(diào)用鏈中,以進行更復(fù)雜的處理。例如,

class User {var name: String? = nullvar age = 0fun set(ageParam: Int) {age = ageParam}fun get(): Int {return age}}User().apply {name = "java"age = 99set(100)Log.d(TAG, "User:$name,${get()}")}.apply {name = "c++"Log.d(TAG, "User:$name,${get()}")}

5.also函數(shù)

  • 上下文對象作為參數(shù)(it)提供.

  • 返回值:引用對象本身

also?用于操作上下文參數(shù)對象。引用also的操作都是針對引用對象(而不是它的屬性和方法)或者是不想對外部作用域隱藏this對象。

常用于鏈?zhǔn)秸{(diào)用中,在不改變對象的情況下,插入一些中間操作。

當(dāng)看到also時,可以讀作“also跟隨對象”。

User().also {it.set(100)Log.d(TAG,"also引用,user:${it.age}")}.also {it.set(99)it.name = "kotlin"}.run {Log.d(TAG,"run引用,user:$name, $age")}

二、區(qū)別

1.參數(shù)

自定義參數(shù)it名字:唯獨let函數(shù)可以自定義參數(shù)it名字

函數(shù)參數(shù)傳遞:唯獨with函數(shù)把引用對象作為參數(shù)輸入例如,with(name){}

2.返回值

let,with和run返回值為lamda表達式結(jié)果,而apply和also返回值為引用對象本身

3.參數(shù)this和it

參數(shù)為this的函數(shù)為with,run和apply,可直接操作對象的屬性和方法。

參數(shù)為it的函數(shù)為不能直接操作對象的屬性和方法。

推薦文章

Scope functions | Kotlin Documentation

http://www.risenshineclean.com/news/31581.html

相關(guān)文章:

  • 燕郊網(wǎng)站建設(shè)天津seo推廣服務(wù)
  • 計算機網(wǎng)站建設(shè)的能力seo網(wǎng)站推廣簡歷
  • 輿情報告分析10000字seo整體優(yōu)化
  • wordpress的開發(fā)者搜索引擎排名優(yōu)化方法
  • 制作一個學(xué)校門戶網(wǎng)站中國培訓(xùn)網(wǎng)
  • 餐飲網(wǎng)站開發(fā)性能需求分析免費收錄網(wǎng)站
  • 網(wǎng)站建設(shè)教程公司如何注冊網(wǎng)站平臺
  • 需要做網(wǎng)站建設(shè)的公司上?;ヂ?lián)網(wǎng)管理系統(tǒng)推廣公司
  • 做網(wǎng)站數(shù)據(jù)庫表設(shè)計seo整站優(yōu)化方案
  • 旅游網(wǎng)站模塊2022年seo最新優(yōu)化策略
  • 備案 添加網(wǎng)站網(wǎng)站可以自己建立嗎
  • 黃驊貼吧房屋租賃信息濰坊網(wǎng)站建設(shè)seo
  • 哪一些網(wǎng)站可以開戶做百度廣告長沙seo推廣公司
  • 創(chuàng)業(yè)做網(wǎng)站需要哪些seo在線教程
  • 寧波網(wǎng)站建設(shè)服務(wù)關(guān)鍵詞優(yōu)化精靈
  • 域名備案網(wǎng)站建設(shè)方案百度云官網(wǎng)登錄入口
  • 廣州大型網(wǎng)站建設(shè)公司網(wǎng)址搜索
  • 哈爾濱搜索引擎排名黑帽seo技巧
  • 我英文網(wǎng)站建設(shè)上海百度推廣
  • b2c電子商務(wù)網(wǎng)站建設(shè)打開網(wǎng)站搜索
  • 二手書屋網(wǎng)站開發(fā)的意義數(shù)據(jù)庫營銷
  • 單位網(wǎng)站建設(shè)做到哪個科目百度關(guān)鍵詞排名代發(fā)
  • 公司免費取名網(wǎng)站seo搜索引擎優(yōu)化案例
  • 網(wǎng)站推廣前景怎么樣seo官網(wǎng)優(yōu)化
  • 湯唯梁朝偉做的視頻網(wǎng)站百度代運營推廣
  • 賣東西的網(wǎng)站怎么建設(shè)網(wǎng)絡(luò)推廣的概念
  • wordpress網(wǎng)頁打開慢seo排名優(yōu)化推廣
  • 洛陽建設(shè)網(wǎng)站制作百度服務(wù)中心人工24小時電話
  • 自建個人網(wǎng)站seo關(guān)鍵詞查詢
  • 上市的網(wǎng)站設(shè)計公司頭條今日頭條新聞