CGFloat не может быть инициализирован с помощью Float


У меня есть функция, которую я написал для приложения Sprite Kit с использованием Swift. В настоящее время Xcode ошибается при построении, утверждая, что CGFloat() не может быть инициализирован. Вот мой код:

func someFunction () {
    var x:Float = 5.0
    return CGFloat(x)
}

Который выдает ошибку:

"не удалось найти перегрузку для 'init', которая принимает предоставленные аргументы "

После нажатия команды на CGFloat, я могу видеть inits с поплавками, двойниками и Ints для возможных параметров.

Следующий код также создает то же самое Ошибка

func someFunction () {
    return CGFloat(5.0)
}

А также

func someFunction () {
    return 5;
}

Который дал ошибку

" Тип '() 'не соответствует протоколу 'IntegerLiteralConvertible' "

Я чувствую, что мне явно не хватает какой-то основной концепции языка, которая влияет на то, как мой код ведет себя.
1 2

1 ответ:

Концепция, которую вы, по-видимому, упускаете, заключается в том, что вы не объявили возвращаемый тип для своих функций.

Это должно быть

func someFunction () -> CGFloat {
    var x:Float = 5.0
    return CGFloat(x)
}

Здесь объявляется, что функция someFunction возвращает значение типа CGFloat.