gpt4 book ai didi

arrays - 数组和反转给出相同的结果但不相等

转载 作者:行者123 更新时间:2023-11-28 11:30:02 26 4
gpt4 key购买 nike

我遇到了一个很难理解的情况。我有一个字符串数组然后反转但它打印相同的数组而不是反转...

比较时,编译器说它们不相等

下面是代码...

请帮我理解这个现象

let names = ["Andy", "Joy", "Paul"]
print(names) // Prints ["Andy", "Joy", "Paul"]
print(names.reversed())
//Prints ReversedCollection<Array<String>>(_base: ["Andy", "Joy", "Paul"])`

//Prints Not equal
if names == names.reversed() {
print("Equal")
} else {
print("Not Equal")
}

我期望输出是[“保罗”、“乔伊”、“安迪”]之后

 names.reversed()

最佳答案

调用 reversed() 不会修改数组。它返回原始数组的 View 。

当您调用 print(names.reversed()) 时,它会打印反向列表,但 names 本身保持不变。

names == names.reversed() 唯一为真的时候是数组为空或者它是一个“回文”数组。

另外请记住,您将 names 声明为常量(使用 let),因此这应该是一个很好的提示,即 names 没有没有被修改。

你可以创建一个新数组:

let reversedNames = names.reversed()

新数组的值将以相反的顺序排列。

关于arrays - 数组和反转给出相同的结果但不相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57069067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com