委托属性 委托属性 是一种通过委托实现拥有 getter 和可选 setter 的 属性,并允许实现可复用的自定义属性。...当一个类声明委托属性时,编译器生成的代码会和如下 Java 代码相似。...Kotlin 已经提供了内置的扩展方法来允许将 Map and MutableMap 实例用作委托,属性名作为其中的键。...标准委托:lazy() 针对常见情形,Kotlin 提供了一些标准委托,如 Delegates.notNull()、 Delegates.observable() 和 lazy()。...迭代:集合 Kotlin 标准库提供了内置的 indices 扩展属性来生成数组和 Collection 的区间。
Rouse 读完需要 5 分钟 速读仅需 2 分钟 引言 在Kotlin编程语言中,委托是一项强大的特性,它能够极大地简化代码,提高代码的可维护性。...本文将深入探讨Kotlin中的委托机制,介绍其原理、具体使用方式以及实际应用场景。 委托的原理 委托是一种通过将实际工作委托给其他对象来实现代码重用的机制。...在Kotlin中,委托通过关键字 by 来实现。我们将首先了解委托的基本原理,为后续的实例打下基础。 基本语法 Kotlin中的类可以通过关键字 by 委托给其他类。...具体使用示例 接下来,我们将通过实际的示例来演示Kotlin委托的具体使用方式。我们将使用委托来实现属性的延迟初始化,这是委托的一个常见用法。...这种结构使得我们可以轻松切换不同的网络请求实现,而不需要修改业务逻辑。 结论 通过本文的学习,我们深入了解了Kotlin中委托的原理和使用方式。
这个系类的目标是深入探讨JavaScript的一些概念和理论。主题来自于 Darcy Clarke的JavaScript典型面试问题列表。...详解事件委托 事件委托是一种由其它元素而非事件目标元素来响应事件产生的行为的思想。...一些JS库和框架公开了其它方式,如发布/订阅模型(将在后文提及)。 事件捕获和事件冒泡是事件流中的两个阶段,任何事件产生时,如点击一个按钮,将从最顶端的容器开始(一般是html的根节点)。...Call、apply和bind本身是相当复杂的,应该有自己的文档记录,我们会把这当做未来待解决问题的一部分。...elm.tagName + ''); } else { return ('this is ' + elm + ''); } } View this on JSFiddle 事件委托和
为什么80%的码农都做不了架构师?>>> ? Mongo的备份和恢复(mongodump 和mongorestore ) ?...,这样的备份是基于某一时间点的快照,只能用于备份全部库时才可用,单库和单表不适用: mongodump -h 127.0.0.1 --port 27017 --oplog -o /root/bak...2、mongodump在mongo关闭时,也是可以备份的,不过需要指定数据目录,命令为: mongodump --dbpath /data/db 3、在备节点使用mongodump备份时,必须加上-...-oplog参数,否则备份的状态不会和任何其他集群成员的状态相吻合,另外在恢复时还需创建一份oplog,用来恢复备份期间所做的操作。...4、mongodump与mongoexport的区别: mongodump导出的是bson格式,是二进制形式,不过可以使用mongo自带的bsondump命令查看里面的数据,而mongoexport导出的则是文本
,这样的备份是基于某一时间点的快照,只能用于备份全部库时才可用,单库和单表不适用: mongodump -h 127.0.0.1 --port 27017 --oplog -o /root/bak...--同时,恢复时也要加上--oplogReplay参数,具体命令如下(下面是恢复单库的命令): mongorestore -d swrd --oplogReplay /home/mongo/swrdbak...2、mongodump在mongo关闭时,也是可以备份的,不过需要指定数据目录,命令为: mongodump --dbpath /data/db 3、在备节点使用mongodump备份时,必须加上-...-oplog参数,否则备份的状态不会和任何其他集群成员的状态相吻合,另外在恢复时还需创建一份oplog,用来恢复备份期间所做的操作。...4、mongodump与mongoexport的区别: mongodump导出的是bson格式,是二进制形式,不过可以使用mongo自带的bsondump命令查看里面的数据,而mongoexport导出的则是文本
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。...https://suveng.github.io/blog/ centos linux 安装mongodb以及基本使用 sudo yum install -y mongodb-org #修改mongo...的配置文件 sudo vi /etc/mongod.conf #注释掉bindIp或者修改成当前机器的某一个ip地址 #启动mongo sudo service mongod start #连接到...mongo #如果注释掉了bindIp,那么连接时用 mongo #指定了ip地址 mongo --port 27017 #使用或创建database use xiaoniu #创建集合(表) db.createCollection...服务 sudu service mongod stop #设置服务开机启动 sudo checkconfig mongod on #设置mongo服务开机不启动 sudo chkconfig mongod
Kotlin 真的是一门美丽的开发语言,她拥有的一些很棒的特性使 Android 开发变成的有趣和令人兴奋。...(读取和设置属性的值)的类。...这个委托用函数key提供的值作为键,从SharedPreferences读取String类型的值。默认情况下,键为属性的名字,所以我们不用维护和传递任何常量。...和Int增加委托,这和前面是一样的: fun SharedPreferences.stringNullable( defaultValue: String?...总结 我们看来一些在 Android 开发中使用 Kotlin 委托属性的例子。当然了,你也可以用别的方式来使用它。 这篇文章的目标是展示委托属性是多么强大,以及我们可以用它做什么。
mongo的身份验证和授权 问题来源 ?...如果服务器安全性挺高的,裸奔倒也不是问题。但是现在的版本还是推荐把这个auth给打开。...认证、授权和用户 身份认证:验证用户的身份,你是谁 授权:判定用户在通过了身份验证的数据库上可以进行那些操作,比如读,写,只读,只写等 auth=true会禁止对数据库的匿名访问。...Mongo中用户的信息在system.users集合中,改集合存在于管理数据库中(我这里的是admin),它存储了用户id,密码和创建该集合所面向的数据库以及对用户授权的权限。 ?...如果两个用户具有相同的名称但是关联到了不同的数据库,那么它们被认为是两个不同的用户。 小结: 用户名和关联的数据库唯一标识了Mongo中的一个用户。
Kotlin 的 by 关键字,我们平时用得挺多的,比如用 by lazy 来设置属性的懒加载: val lazyUser by lazy { User() } 这种写法叫「属性委托」,也就是把属性的读写操作委托给另一个对象...Java 的委托模式 实际上 Kotlin 的这种语法虽然比较新,但它背后的设计模式是早就有了的,叫做「委托模式」。...Kotlin 的接口委托 同样的做法,你用 Kotlin 也能写: class UserList(private val list: List) : List { override...当然了,对 Kotlin 来说,做功能拓展也可以用扩展函数和扩展属性,这个你可以自己选,看情况而定。...接口委托在 Kotlin 协程和 Jetpack 各个库的源码里有很多的应用,只要你把它背后的东西弄明白了,它其实是一个非常简单好用的特性,又好读懂又好写。
问题背景 成功安装 MongoDB 后执行 Mongo、MongoD 显示找不到命令 解决方案 echo 'export PATH="/usr/local/opt/mongodb-community@4.4.../bin:$PATH"' >> ~/.zshrc source ~/.zshrc 将 MongoDB 的路径配置到环境变量中即可~
C# 中的委托和事件 文中代码在VS2005下通过,由于VS2003(.Net Framework 1.1)不支持隐式的委托变量,所以如果在一个接受委托类型的位置直接赋予方法名,在VS2003下会报错...例如:委托类型 委托实例 = new 委托类型(方法名); 欢迎浏览本文的后续文章: C#中的委托和事件(续) 引言 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触...本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论。..., param); } } 这里就出现了一个问题:如何在水烧开的时候通知报警器和显示器?...为什么有很多的EventArgs参数? 在回答上面的问题之前,我们先搞懂 .Net Framework的编码规范: 委托类型的名称都应该以EventHandler结束。
事件(通过委托实现的,委托才是事件能正常执行的核心内容) 事件的作用: 事件的作用与委托变量一样,只是功能上比委托变量有更多的限制。...新建项目 ---->>事件三连击 15、步骤和三连接是一样的,在委托字段前加上关键字event 唯一不同的是,在这里添加了 关键字 event ,就变成了事件 16、这里可以尝试着,写上DoSth()..._mdl();//调用方法 } } } } } 总结: 委托和事件的区别 1、委托和事件没有可比性...,下面说的是委托的对象(用委托方式实现的事件)和(标准的event方式实现)事件的区别。事件的内部是用委托实现的。...总结: 1、委托的作用: 占位,在不知道将来要执行的方法的具体代码时,可以先用一个委托变量来代替方法调用(委托的返回值,参数列表要确定)。在实际调用之前,需要为委托赋值,否则为null。
最近一直使用morphia,给mongo数据查询带来很多遍历,但是最近项目遇到了一个严重的问题,在从Mongo数据库中查询Map>字段时,针对value值为空list...时(即[ ]),竟然读到数据的严重问题,具体描述如下: 1.Entity数据结构: import org.mongodb.morphia.annotations.Embedded; import...String subName; @Property("subDescription") private String subDescription; } } 2.数据在mongo...":"lance-description" } ] 和entity1 相等,MyEntityDao获取的值错误,会给业务带来严重的问题。...6.解决方式: 将MyEntity数据保存到Mongo数据库中时,禁止Map> mySubEntity的map中的key为[ ]的数据保存到数据库中
一群可爱的小女孩.jpg Kotlin 的委托属性 有一些很常见的属性,虽然我们可以在每次需要它们的时候手动地实现它们,但更好的方法是一次性全部实现,然后放进一个库里面。...委托属性的语法 val/var : by 其中,by 后面的表达式就是一个委托操作。...click 函数是一个扩展函数,可以在 https://github.com/fengzhizi715/SAF-Kotlin-Utils 找到。...由于,com.novoda.bintray-release插件和gradle版本升级到当前最新版本。...它包含两个 user 对象,分别使用 fastjson 和 gson 来做序列化。
主要区别: Kotlin 的特点 Java的特点 Kotlin 的历史 JAVA的历史 Kotlin 和 Java 的区别 Kotlin 的优势 Java的优势 Kotlin 的缺点 Java的缺点 哪个更好...Kotlin 和 Java 的区别 Kotlin 与 Java 这是 Kotlin 与 Java 之间的区别 Kotlin Java Kotlin 允许用户创建扩展函数。...语言脚本功能允许您直接在 Gradle 构建脚本中使用 Kotlin Java 不提供语言脚本功能。 它支持现代编程概念,如委托、扩展、高阶函数。 Java 支持 OOPS 编程概念。...帮助开发者创建扩展功能 提供了一种非常简单且几乎自动化的方式来创建数据类 Kotlin 是一种静态类型语言,因此非常易于阅读和编写。 这种语言允许以各种方式交换和使用来自 Java 的信息。...完美的表现 易于浏览的社区资料 Kotlin 的缺点 这里是使用 Kotlin 的缺点/缺点: 开发者社区很小,因此缺乏学习材料和专业帮助。 Java 不提供可能导致错误的检查异常的功能。
RedisJSON 还可以与 RediSearch 无缝协作,让您索引和查询 JSON 文档。...主要特点: 完全支持 JSON 标准 用于选择/更新文档中元素的 JSONPath 语法 文档以二进制数据形式存储在树结构中,允许快速访问子元素 支持对类型为 JSON 值的原子化操作 安装 浏览器打开下载地址...JSON.STRLEN myKey $ 1) "38" 数字可以递增和乘以: JSON.SET num $ 0 OK JSON.NUMINCRBY num $ 1 "[1]" JSON.NUMINCRBY...JSON 响应,请在原始输出模式下运行 redis-cli,并在 JSON 中包含格式关键字(如缩进、换行符和空格)。...命令的使用与普通 Redis 命令的差异之处在于 Path 的概念。为了更好的操作 JSON 数据,Path 是不可避免的。有需要可以学习一下 JSONPath 的使用。
System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 线程和事件的关系...(setet.Time); Console.WriteLine(setet.Name); } 执行结果:先打印主线程再打印副线程 结论:将程序比作一棵树,那么类的实例...,变量就是构成树的基本单元,主树干就是主线程,分支就是分线程,委托相当于绿叶,不同线程上边的委托相当于不同分支的绿叶,相同的叶子代表同一个委托链,任何输送到该叶子上边的养分阳光都会顺序吸收。...生长的田地便是.netframework,田地之外就是操作系统。 欢迎拍砖!
很多同学刚上手使用Kotlin知道它有针对Java NullPointerException的管理,而在Kotlin中?和!!...均是和NullPointerException有关系,可他们的区别到底是什么呢?为什么别人开发的项目中出现了好多"?",而我读起来却满脸问号。...不懂就问百度呀,确实有人解释它们的区别,比如: 这是输入 "kotlin ?和!!" 搜索到的百度第一条答案,确实这位说的没错。...是一种安全的写法,它体现了Kotlin null safety的特性。KT的语法很灵动,定义参数还可以写成 val room: Room?...和?:基本上能避免程序中出现的所有NullPointerException。
在谈Kotlin的优势的时候,大家都会想到空指针安全这一点,那么Kotlin又是如何避免这些问题的呢?下面从Kotlin的一些语法规则上给出介绍。...null 检测, 代码可读性较差, Kotlin提供了简明的写法 ?。...:, 实现 if … else … 的赋值。Kotlin 也有这个操作符, 但是用法不一样,例如: val nullableName: String?...Int #原理 为了更好的理解Kotlin空指针的原理。下面来看一下Kotlin是如何利用工具给开发者在编译前给出提示的。...这样的代码没错,但就是有点啰嗦。 Kotlin采用了一种不同的null处理方式。它对可空类型和不可空类型作了区分,可空的类型后面会跟一个问号,比如Bar?,而Bar类型的变量则不可为空。
概要 如果你想用 gradle kotlin DSL,那么请注意,accessors 的支持从 0.8.0 开始(gradle 3.5),后续也做了一些完善和更新,目前已经默认开启了这一项功能。...其实,compile 和 classpath 不一样,前者是构建插件的 configuration,而 classpath 则是 gradle 本身的一个方法。...我本来用 4.0 用得好好的,非要因为 settings.gradle.kts 改用了 4.4 的版本,导致出现了这个问题,我就想难道新版本做了调整?...于是我又换了 4.5、4.5.1,果然问题还是有。...小结 kotlin 和 groovy 也算是各有所长,如果我们对于 gradle 的语法非常熟悉,那么我个人认为用 groovy 写 DSL 倒也灵活,kotlin 的约束毕竟多一些——而这也正是 Kotlin
领取专属 10元无门槛券
手把手带您无忧上云