在arrayListOf中包含foo in list也会返回false的原因是因为
foo在
list中是作为一个对象存在的,而不是作为一个字符串。在Kotlin中,
in操作符用于检查一个元素是否存在于一个集合中。当使用
in操作符时,它会调用集合的
contains方法来判断元素是否存在。而在
arrayListOf中,
contains方法会使用元素的
equals`方法来比较元素是否相等。
默认情况下,Kotlin中的equals
方法会比较对象的引用是否相等,而不是比较对象的内容是否相等。因此,当我们使用in
操作符来检查一个字符串是否存在于arrayListOf
中时,它会调用字符串的equals
方法来比较字符串的引用是否相等,而不是比较字符串的内容是否相等。
如果我们想要比较字符串的内容是否相等,可以使用contains
方法的另一个重载版本,该版本接受一个lambda表达式作为参数,我们可以在lambda表达式中自定义比较规则。例如,我们可以使用contains { it == foo }
来比较字符串的内容是否相等。
在腾讯云的产品中,与云计算相关的产品有云服务器、云数据库、云存储等。云服务器(CVM)是一种弹性计算服务,提供可扩展的计算能力,适用于各种应用场景。云数据库(CDB)是一种高性能、可扩展的数据库服务,支持多种数据库引擎。云存储(COS)是一种安全可靠、低成本的云端存储服务,适用于存储和处理各种类型的数据。
腾讯云产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云