Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.0k views
in Technique[技术] by (71.8m points)

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

I have ridiculous error using strings

var myString = "A"

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

this code works really fine, but when i replace "-" with same character in struct like this:

var myString = "A"

struct number {
    static let negative = "-"
}

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

Compile error suddenly appears

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

This error code is about string but only thing changed is "-" to number.negative

Please tell me why there's error on substring

question from:https://stackoverflow.com/questions/65895132/subscript-subscript-requires-that-string-index-conform-to-rangeexpressi

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Option-click on the equals operator. It's not what you think it is.

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

Solution:

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

myString[myString.startIndex] == Number.negative

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...