2016-02-20 3 views
0

Это проблема leetcode: 168. Лист Excel Колонка Название @ https://leetcode.com/problems/excel-sheet-column-title/Swift строке инициализации неоднозначным (какой метод String.init делает этот код вызова?)


код прекрасно работает на моем Mac, но получил ошибку компиляции в leetcode:
Строка 5: неоднозначное использование 'init'
Итак, скажите, пожалуйста, какой метод String.init выполняет этот код?

String(UnicodeScalar(val)) 
И как я могу решить эту проблему?


class Solution { 
    func convertToTitle(n: Int) -> String { 
     var alphabet = [String]() 
     var result = "" 
     alphabet = (UnicodeScalar("A").value...UnicodeScalar("Z").value).map({(val: UInt32) -> String in return String(UnicodeScalar(val)); }) 
     var num = n 
     while num != 0 { 
      num -= 1 
      result = alphabet[num % 26] + result 
      num /= 26 
     } 
     return result 
    }} 

ответ

0

компилируется в последнем Xcode, так что я предполагаю, что это проблема с компилятором leetcode в.

Я считаю, что инициализатор, который должен называться, называется init<T>(_: T). Я не знаю, какой другой инициализатор их компилятор находит.

Как исправить это, вы можете попробовать что-то вроде String(UnicodeScalar(val) as CustomStringConvertible).

+0

извините, до сих пор получил ту же ошибку компиляции, я написал письмо leetcode, они сказали, что использует последний быстрый компилятор из github.So лучшей практики еще не найден. – user2710368

+0

Сообщаете ли вы о проблеме с leetcode? – phu

0

Это компилируется для меня под Linux на 2.2.1 и 3.0 Preview 1, но я столкнулся с аналогичной проблемой при вызове конструктора UnicodeScalar с односимвольными строками (UnicodeScalar("A")). Вместо этого попробуйте назначая строковые значения непосредственно UnicodeScalar -typed переменных:

let a : UnicodeScalar = "A" 
let z : UnicodeScalar = "Z" 
let alphabet = (UnicodeScalar("A").value...UnicodeScalar("Z").value).map({(val: UInt32) -> String in return String(UnicodeScalar(val)); }) 

 Смежные вопросы

  • Нет связанных вопросов^_^