У меня есть следующая функция в swift:
func f() -> Int
{
let a = String("a")
let b = a.unicodeScalars
println(b[b.startIndex].value)
//return b[b.startIndex].value
return 1
}
Если я раскомментирую первый оператор return и прокомментирую второй, я получаю ошибку компилятора:
Не удалось найти значение члена
Почему это происходит, даже когда у меня есть доступ к этому члену в вызове функции println?
ИЗМЕНИТЬ
Чтобы сделать вопрос более понятным, рассмотрите следующий код:
struct point {
var x: UInt32
var y: UInt32
init (x: UInt32, y: UInt32) {
self.x = x
self.y = y
}
}
func f () -> Int {
var arr = [point(x: 0, y: 0)]
return arr[0].x
}
В этом случае ошибка компилятора:
UInt32 не конвертируется в Int
Мой вопрос: почему ошибки компилятора различны, даже если проблема одинакова в обоих случаях?