Arrays 删除数组Swiftui中的值

Arrays 删除数组Swiftui中的值,arrays,swiftui,Arrays,Swiftui,我无法删除数组中的值。我收到以下错误消息: 协议类型“Any”的值不能符合“equalable”;只有结构/枚举/类类型才能符合协议 这是我在主文件中的代码: if let index = loader.userfl.firstIndex(of: user?.uid ?? "") { loader.userfl.remove(at: index) } 这是我在加载程序文件中执行的操作:

我无法删除数组中的值。我收到以下错误消息:

协议类型“Any”的值不能符合“equalable”;只有结构/枚举/类类型才能符合协议

这是我在主文件中的代码:

            if let index = loader.userfl.firstIndex(of: user?.uid ?? "") {
                loader.userfl.remove(at: index)
            }
这是我在加载程序文件中执行的操作:

    @Published var userfl = []

有人知道我做错了什么吗?

请尝试将类型添加到变量中,使其变为:

@Published var userfl: [String] = []

您需要显示更多代码和信息。OP共享的错误消息解释了Equatable的一些问题,我想知道您的答案如何解决该问题!你好我认为问题在于方法“firstIndex(of:)”要求数组中的元素是相等的。但是,数组是在没有类型的情况下初始化的(它留给编译器以后隐式分配类型)。方法“firstIndex(of:)”要求数组具有可等式的类型,但编译器还不知道(因为它是隐式的)。因此,在设置类型[String]时,方法“firstIndex(of:)”可以确保它具有可等分的元素。(注:字符串符合equalable)那么你怎么猜它应该是[String]?,它可以是[Int]或[Double]或。你好好问题对不起,我没能解释那一点。我使用的事实是,在原始代码中,它说“firstIndex(of:user?.uid?”),因为有??“”时,我暗示它是字符串数组。