刚开始学习Swift ,我真的对以下行为感到困惑.
这是我在没有基础的情况下运行String.Containers时得到的结果:
"".contains("") // true
"a".contains("") // true
"a".contains("a") // true
"" == "" // true
这就是我从基金会得到的:
import Foundation
"".contains("") // false
"a".contains("") // false
"a".contains("a") // true
"" == "" // true
为什么根据我是否导入Foundation,结果会有所不同?还有其他这样的差异吗?有没有一份详尽的 list ?在基金会的文档中没有找到任何东西,但这似乎很重要,需要记录下来.我只知道另外this个例子.
还有:这种情况会发生吗?这正常吗?据我所知,Swift有一些类似扩展的东西,一旦它们被包括进来,就会改变某个东西的每个实例的行为,但肯定这只会增加行为,而不是改变现有的行为.如果现有的行为被改变了,语言不是应该以某种方式表明这一点,比如如果我想要不同的行为,就让我使用不同的类型吗?