提取子字符串但出现编译器错误

extract out substring but get compiler error

我有一个字符串 "John+20",我想提取出 "John",所以,我尝试基于 进行以下操作:

// data contains value "John+20"
static func getName(fromString data: String?) {
  guard let myData = data else {
      return
  }

  let idx = myData.index(of: "+")
  //Compiler ERROR: Generic parameter 'Self' could not be inferred
  let name = String(myData[..<idx])
}

但是我收到代码注释中提到的错误,这是为什么?

我在我的 iOS 项目中使用 Swift 4.1。

我想索引也是可选的。尝试:

// data contains value "John+20"
static func getName(fromString data: String?) {
  guard let myData = data else, let idx = myData.index(of: "+") {
      return
  }

  let name = String(myData[..<idx])
}