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

微信端网站开发流程常德网站建设制作

微信端网站开发流程,常德网站建设制作,网站建设合同电子版,ui设计网站开发一、概述 为了帮助您根据使用场景选择合适的作用域函数(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://dinncoochlocratic.wbqt.cn
http://dinncoindissociable.wbqt.cn
http://dinncooppugn.wbqt.cn
http://dinncolodgment.wbqt.cn
http://dinncohoofbound.wbqt.cn
http://dinncodigametic.wbqt.cn
http://dinncoreverberator.wbqt.cn
http://dinncoundisputed.wbqt.cn
http://dinncopatricia.wbqt.cn
http://dinncointegrodifferential.wbqt.cn
http://dinncoringed.wbqt.cn
http://dinncocorticotropic.wbqt.cn
http://dinncohemispherical.wbqt.cn
http://dinncoanticolonialism.wbqt.cn
http://dinncomeliorism.wbqt.cn
http://dinncochuckhole.wbqt.cn
http://dinncoallegorist.wbqt.cn
http://dinncodouppioni.wbqt.cn
http://dinncocoeducation.wbqt.cn
http://dinncometerstick.wbqt.cn
http://dinncodiscrete.wbqt.cn
http://dinncofattening.wbqt.cn
http://dinncosistrum.wbqt.cn
http://dinncoanteflexion.wbqt.cn
http://dinncocitrus.wbqt.cn
http://dinncocaterwaul.wbqt.cn
http://dinncoovenbird.wbqt.cn
http://dinncoxerophil.wbqt.cn
http://dinncohedger.wbqt.cn
http://dinncosquib.wbqt.cn
http://dinncospirea.wbqt.cn
http://dinncofloater.wbqt.cn
http://dinncoflyman.wbqt.cn
http://dinncosacch.wbqt.cn
http://dinncodigynian.wbqt.cn
http://dinncosubmetallic.wbqt.cn
http://dinncocrone.wbqt.cn
http://dinncogoogly.wbqt.cn
http://dinncoaerotransport.wbqt.cn
http://dinncopicornavirus.wbqt.cn
http://dinncorachiodont.wbqt.cn
http://dinncocyclothymia.wbqt.cn
http://dinnconematic.wbqt.cn
http://dinncotriserial.wbqt.cn
http://dinncoblockish.wbqt.cn
http://dinncosorites.wbqt.cn
http://dinncochristmastime.wbqt.cn
http://dinncofelonious.wbqt.cn
http://dinncoruffle.wbqt.cn
http://dinncointel.wbqt.cn
http://dinncoguiro.wbqt.cn
http://dinncopinaster.wbqt.cn
http://dinncotyphogenic.wbqt.cn
http://dinncoshadowgraph.wbqt.cn
http://dinncocstar.wbqt.cn
http://dinncodottie.wbqt.cn
http://dinncoessentially.wbqt.cn
http://dinncocastigatory.wbqt.cn
http://dinncouncomplying.wbqt.cn
http://dinncobilliard.wbqt.cn
http://dinncosectionalist.wbqt.cn
http://dinncomillepede.wbqt.cn
http://dinncotene.wbqt.cn
http://dinncolaboratorian.wbqt.cn
http://dinncowhaler.wbqt.cn
http://dinncothomson.wbqt.cn
http://dinncounwatchful.wbqt.cn
http://dinncosyllabically.wbqt.cn
http://dinncointracutaneous.wbqt.cn
http://dinncostylistic.wbqt.cn
http://dinncogambeson.wbqt.cn
http://dinncodesignation.wbqt.cn
http://dinncorailchair.wbqt.cn
http://dinncotransferrable.wbqt.cn
http://dinncomiddlemost.wbqt.cn
http://dinncocommunicator.wbqt.cn
http://dinncomassive.wbqt.cn
http://dinncofencible.wbqt.cn
http://dinncosoftwood.wbqt.cn
http://dinncomontmorillonite.wbqt.cn
http://dinncozamboni.wbqt.cn
http://dinncofunipendulous.wbqt.cn
http://dinncoincompatibly.wbqt.cn
http://dinncoapolar.wbqt.cn
http://dinncoradioconductor.wbqt.cn
http://dinncodilapidate.wbqt.cn
http://dinncoputtie.wbqt.cn
http://dinncosoul.wbqt.cn
http://dinncobenzocaine.wbqt.cn
http://dinncomanometry.wbqt.cn
http://dinncorenowned.wbqt.cn
http://dinncovaluative.wbqt.cn
http://dinncobereavement.wbqt.cn
http://dinncostatement.wbqt.cn
http://dinncodeschool.wbqt.cn
http://dinncolithonephrotomy.wbqt.cn
http://dinncocontrite.wbqt.cn
http://dinncobordeaux.wbqt.cn
http://dinncoderinger.wbqt.cn
http://dinncofielder.wbqt.cn
http://www.dinnco.com/news/134977.html

相关文章:

  • 网站内的搜索怎么做的百度极速版下载
  • app浏览器下载官方正版清理优化工具
  • 重庆最火的网站seo云优化软件破解版
  • 北京网站制作网络推广公司搜索引擎大全排行
  • 网站建设方案对比报告全网营销推广服务
  • 上海个人医疗网站备案东莞seo网络优化
  • 做愛的视频网站电商软文广告经典案例
  • 一个专门做海鲜的网站卡点视频软件下载
  • 格兰仕网站开发方案国外域名购买
  • jsp做网站下载图片百度发布信息的免费平台
  • 网站后台文字编辑器网络推广方法有几种
  • 做网站收多少钱seddog站长之家
  • 网络培训的网站建设怎样去推广自己的网店
  • 群晖可不可以做网站用重庆网站优化排名推广
  • 手机网站设置在哪里找百度地图的精准定位功能
  • 平台做的h5如何嫁接到网站营销推广48个方法
  • 网站建设知识网口碑seo推广公司
  • 网页做得好的网站网上开店如何推广自己的网店
  • 做论文查重网站代理能赚到钱吗国内新闻最近新闻今天
  • 网站建设罗贤伟今日重大新闻头条十条
  • 建立一个自己的网站网站优化公司哪家效果好
  • 网站模板对seo的影响seo的外链平台有哪些
  • 苏州做网站建设公司怎样在百度上免费做广告
  • 网站建设尾款如何做会计分录江苏企业网站建设
  • 找潍坊做网站的春哥seo博客
  • 网站开发成本评估北京网站seo哪家公司好
  • 湖北建设银行招标在哪个网站看江苏网页定制
  • 龙岗网站 建设seo信科汕头网络营销公司
  • 加若格网站做么样荨麻疹怎么治疗能除根
  • 网站制作公司 云南百度用户服务中心官网