gpt4 book ai didi

ios - 成员类型的快速重载运算符

转载 作者:行者123 更新时间:2023-11-28 09:17:14 29 4
gpt4 key购买 nike

我对 swift 中的运算符重载有疑问。在我的代码中,我有一个这样的结构:

struct Position {

///The horisontal index for a chessboard [A-H]
let horisontal : String

///The vertical index for a chessboard [1-8]
let vertical : Int
}

接下来我需要的是一种以索引 +- 某个整数的方式更改水平索引的方法。然后我要做的是重载“+”运算符,如下所示:

func + (left: Position.horisontal, right: Int) -> Bool {
//Some implementation in here
}

然后我的世界就崩溃了。编译器告诉我:“'horisontal 不是'Position'的成员类型”在这种情况下,我不知道什么可以帮助我?为什么编译器拒绝承认“水平”的存在?我还能做些什么来实现 String 和 Int 之间的加法?

备注请注意,这工作得很好,但我认为这不符合运算符重载的良好精神:

func + (left: String, right: Int) -> Bool {
//Some implementation in here
}

最佳答案

Why the compiler refuses to acknowledge the existence of 'horisontal'?

因为 horisontal [原文如此] 不是类型,所以它是 Position 类型的成员。

更合适的解决方案是为行和列位置定义一个封闭的enum

关于ios - 成员类型的快速重载运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27001665/

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