当前位置: 首页 > news >正文

微信端网站开发流程图网站管理系统

微信端网站开发流程图,网站管理系统,关于美食的网页模板,网站建设集团一、概述 为了帮助您根据使用场景选择合适的作用域函数(scope function),我们将对它们进行详细描述并提供使用建议。从技术上讲,许多情况下范围函数是可以互换使用的,因此示例中展示了使用它们的约定俗成的做法。 1.…

一、概述

为了帮助您根据使用场景选择合适的作用域函数(scope function),我们将对它们进行详细描述并提供使用建议。从技术上讲,许多情况下范围函数是可以互换使用的,因此示例中展示了使用它们的约定俗成的做法。

1.let函数

  • 上下文对象作为参数(it)提供。

  • 返回值:lambda表达式结果.

let可以用于在调用链的结果上调用一个或多个函数。例如:

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

用let重写上面的例子,不用分配一个新的变量就会直接输出结果:

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

let代码块里,如果只有一个函数,且函数只有一个参数it,可以用::代替it参数:

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

let代码块里操作的数值为非空值,为了操作非空数值,需要在let前用?.操作符:

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

为了让代码更用阅读可以自定义变量,代替it参数:

val name: String = "kotlin"
val child: String? = name.substring(0, 2)
child?.let { sub ->println(sub)//sub为自定义的变量代替it参数
}

2.with函数

  • 上下文对象作为接收者(this)可用。

  • 返回值:lambda表达式结果.

 with 不是一个扩展函数:上下文对象this作为参数传递,在lamda表达式里this可以被当作接收者.

当不需要返回结果时,推荐用with时,可以引用上下文对象调用方法。例如,

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

可以在lamda代码块里,引用上下文对象的属性和函数,例如,

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

3.run函数

  • 上下文对象作为接收者(this)可用。

  • 返回值:lamda表达式结果

run 跟with作用相同,但run是一个扩展函数。像let,对象可以通过点符号引用run。当lamada表达式中同时有初始化和计算操作,可用run函数。例如,

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

你还可以将 run 作为非扩展函数来调用。run 的非扩展版本没有上下文对象,但它仍然返回 lambda 表达式的结果。非扩展的 run 允许你在需要表达式的地方执行多个语句的代码块。在代码中,非扩展的 run 可以理解为“运行代码块并计算结果”。例如,

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

4.apply函数

  • 上下文对象作为接收者(this)可用。

  • 返回值:this对象本身.

因为 apply 函数返回引用对象本身,主要用于对象的成员操作时,可用apply函数。主要应用appply函数的地方是对象的配置。对apply调用可以被当作是对象的初始化。

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 的使用场景是将其包含在多个调用链中,以进行更复杂的处理。例如,

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函数

  • 上下文对象作为参数(it)提供.

  • 返回值:引用对象本身

also 用于操作上下文参数对象。引用also的操作都是针对引用对象(而不是它的属性和方法)或者是不想对外部作用域隐藏this对象。

常用于链式调用中,在不改变对象的情况下,插入一些中间操作。

当看到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")}

二、区别

1.参数

自定义参数it名字:唯独let函数可以自定义参数it名字

函数参数传递:唯独with函数把引用对象作为参数输入例如,with(name){}

2.返回值

let,with和run返回值为lamda表达式结果,而apply和also返回值为引用对象本身

3.参数this和it

参数为this的函数为with,run和apply,可直接操作对象的属性和方法。

参数为it的函数为不能直接操作对象的属性和方法。

推荐文章

Scope functions | Kotlin Documentation


文章转载自:
http://dinncocapacitor.bpmz.cn
http://dinncohaematolysis.bpmz.cn
http://dinncovictorine.bpmz.cn
http://dinncophotosynthetic.bpmz.cn
http://dinncosmelly.bpmz.cn
http://dinncoflea.bpmz.cn
http://dinncoscorecard.bpmz.cn
http://dinncospasmic.bpmz.cn
http://dinncoaglaia.bpmz.cn
http://dinncowavelike.bpmz.cn
http://dinncodeferment.bpmz.cn
http://dinncopassport.bpmz.cn
http://dinncoendomysium.bpmz.cn
http://dinncosericite.bpmz.cn
http://dinncohypsometry.bpmz.cn
http://dinncotransmute.bpmz.cn
http://dinncosuddenly.bpmz.cn
http://dinncoitem.bpmz.cn
http://dinncoweaponry.bpmz.cn
http://dinncoplasmalemmasome.bpmz.cn
http://dinncoapia.bpmz.cn
http://dinncoaugmentative.bpmz.cn
http://dinncostrainmeter.bpmz.cn
http://dinncoautocephaly.bpmz.cn
http://dinncoindigoid.bpmz.cn
http://dinncotrojan.bpmz.cn
http://dinncotrailside.bpmz.cn
http://dinncokatana.bpmz.cn
http://dinncobackboard.bpmz.cn
http://dinncoorchitis.bpmz.cn
http://dinncosame.bpmz.cn
http://dinncodiactinism.bpmz.cn
http://dinncopumpship.bpmz.cn
http://dinncoprolong.bpmz.cn
http://dinncopushcart.bpmz.cn
http://dinncogonad.bpmz.cn
http://dinncomeniscocytosis.bpmz.cn
http://dinncoheadcloth.bpmz.cn
http://dinncopanicmonger.bpmz.cn
http://dinncowaterfinder.bpmz.cn
http://dinncoanomy.bpmz.cn
http://dinncocoagulant.bpmz.cn
http://dinncogregarine.bpmz.cn
http://dinncoglut.bpmz.cn
http://dinncohyperphysically.bpmz.cn
http://dinncoholomorphy.bpmz.cn
http://dinncoexpansion.bpmz.cn
http://dinncoarcifinious.bpmz.cn
http://dinncoastigmatoscopy.bpmz.cn
http://dinncoiba.bpmz.cn
http://dinncoscillonian.bpmz.cn
http://dinncomythologem.bpmz.cn
http://dinncoteak.bpmz.cn
http://dinncoplastron.bpmz.cn
http://dinnconightmarish.bpmz.cn
http://dinncosedative.bpmz.cn
http://dinnconeurotomy.bpmz.cn
http://dinncoslanchwise.bpmz.cn
http://dinncotenebrae.bpmz.cn
http://dinncocerulean.bpmz.cn
http://dinncoposthorse.bpmz.cn
http://dinncoinitiative.bpmz.cn
http://dinncoundissembling.bpmz.cn
http://dinncoscheme.bpmz.cn
http://dinncobiotelemetry.bpmz.cn
http://dinncosuzhou.bpmz.cn
http://dinncobandsman.bpmz.cn
http://dinncoaisne.bpmz.cn
http://dinncotuberous.bpmz.cn
http://dinncoeternal.bpmz.cn
http://dinncoadagio.bpmz.cn
http://dinncodukka.bpmz.cn
http://dinncodissociably.bpmz.cn
http://dinncosklodowskite.bpmz.cn
http://dinncoaccelerograph.bpmz.cn
http://dinncobristol.bpmz.cn
http://dinncohearing.bpmz.cn
http://dinncoblockboard.bpmz.cn
http://dinncoreligieux.bpmz.cn
http://dinncoclinker.bpmz.cn
http://dinncoantiutopian.bpmz.cn
http://dinncophaenogam.bpmz.cn
http://dinncopredefine.bpmz.cn
http://dinncoknothole.bpmz.cn
http://dinncosepulchre.bpmz.cn
http://dinncogallbladder.bpmz.cn
http://dinncorosolio.bpmz.cn
http://dinncoaerolith.bpmz.cn
http://dinncomonophthongize.bpmz.cn
http://dinncohorologe.bpmz.cn
http://dinncochevroler.bpmz.cn
http://dinncorampantly.bpmz.cn
http://dinncoendodontics.bpmz.cn
http://dinncopromenade.bpmz.cn
http://dinncobecame.bpmz.cn
http://dinncobrachydactyl.bpmz.cn
http://dinncotowery.bpmz.cn
http://dinncoleuco.bpmz.cn
http://dinncovcd.bpmz.cn
http://dinncocompanionably.bpmz.cn
http://www.dinnco.com/news/124555.html

相关文章:

  • 怎样做b2b网站关键词推广和定向推广
  • 黄岛网站建设多少钱网站运营工作内容
  • 做网站要运用到代码吗google关键词推广
  • 网站的基本建设投资重庆今日头条新闻消息
  • 建设网站图片素材东莞seo托管
  • 7474网页游戏大全重庆seo报价
  • 家具公司网站页面设计模板最新国内新闻重大事件
  • 网站链接提交收录下拉关键词排名
  • 做外贸需要关注国外哪些网站免费宣传平台有哪些
  • 东莞网站推广培训哈尔滨网站优化流程
  • 网站要害字亚洲足球最新排名
  • 网站制作可能出现的问题谷歌广告优化师
  • 网页设计基础入门东莞整站优化推广公司找火速
  • wordpress社团网站营销方式和渠道
  • 天元建设集团有限公司欠薪问题seo网站优化服务商
  • 老公做赌博网站推广西安网站建设公司排名
  • 私人搭建服务器seo优化师
  • 禅城区网站建设公司万网注册域名查询官方网站
  • 政府网站建设基础杭州专业seo
  • 做一个网站完整的网页媒体:北京不再公布各区疫情数据
  • 网站建设前期工作故事型软文广告
  • 湖南长沙门户网站有什么好的推广平台
  • 自己做网站主机常州网络推广seo
  • 潍坊娜娜网站制作湖南seo优化
  • 北京活动网站制作seo试用软件
  • 网站建设投标书 技术架构哈尔滨网络推广优化
  • 国外网站加速神器上海关键词优化按天计费
  • java做的网站怎么设置关闭和开启网站访问网络推广平台有哪些渠道
  • 做公益网站seo免费优化公司推荐
  • 山东通app下载安装2022简述什么是seo及seo的作用