下标 'subscript(_:)' 要求 'String.Index' 符合 'RangeExpression' 只有当我使用来自 Struct 的静态值时才会发生

Subscript 'subscript(_:)' requires that 'String.Index' conform to 'RangeExpression' happened only when i use static value from Struct

我在使用字符串时出现荒谬的错误

var myString = "A"

print(myString[myString.startIndex] == "-")    // false

这段代码工作得很好,但是当我用结构中的相同字符替换“-”时,如下所示:

var myString = "A"

struct number {
    static let negative = "-"
}

print(myString[myString.startIndex] == number.negative)

突然出现编译错误

Subscript 'subscript(_:)' requires that 'String.Index' conform to 'RangeExpression'

这个错误代码是关于字符串的,但唯一改变的是 "-"number.negative

请告诉我为什么子字符串有错误

按住 Option 键并单击等号运算符。不是你想的那样。

https://developer.apple.com/documentation/swift/string/1540052-subscript

解决方案:

struct Number {
  static let negative: Character = "-"
}

myString[myString.startIndex] == Number.negative