Как решить «Тип () не может подтвердить просмотр» при вызове функции

Может кто-нибудь объяснить, почему этот код не выполняется. Я пытаюсь изучить различные способы написания функций/структур и т. д., и меня озадачил тот, когда вы пишете функцию вне структуры и вызываете ее в структуре (например, так):

struct ContentView: View {
    var body: some View {
        print(referencePoint(refX: 10, typeX: 10))
    }
}

func referencePoint(refX: Int, typeX: Int) -> Int {
    return (refX * typeX)
}

Попробуйте let _ = print(referencePoint(refX: 10, typeX: 10))

koen 27.11.2022 18:42

@koen Возможно, это пропустит код через компилятор, но я думаю, что он ничего не напечатает.

matt 27.11.2022 19:46

каждая return точка в body должна давать View, print — это Void, а не View. Вы должны посмотреть учебные пособия по SwiftUI, которые Apple предоставляет

lorem ipsum 27.11.2022 20:14
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
4
66
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Похоже, вы решили написать приложение SwiftUI. SwiftUI — это DSL («язык предметной области»), и то, что вы можете делать в определенных контекстах, очень ограничено.

В частности, в body представления (например, вашего ContentView), которое на самом деле является инициализатором построителя представлений, единственное, что вам разрешено делать, — это перечислять подпредставления представления, и вы должны описывать их, используя соглашения SwiftUI (т.е. экземпляр, за которым следуют любые вызовы метода модификатора, затем следующий экземпляр подпредставления, за которым следуют любые вызовы метода модификатора и т. д.).

Вы не можете сказать print в таком контексте. Ошибка, которую вы получаете, говорит вам об этом чрезвычайно техническим и несколько непрозрачным способом.


Возможно, если вы изучаете Swift, вам следовало бы начать с так называемого приложения Storyboard. Даже там вы не можете просто сказать что-либо в любом контексте — в частности, вы не можете разместить исполняемый код на верхнем уровне — но вам, вероятно, будет проще поиграться с языком Swift.

Или вы можете поэкспериментировать на игровой площадке (хотя я этого не рекомендую).

Или, если ваш выбор проекта SwiftUI был преднамеренным, вам следует начать с великолепных руководств Apple по SwiftUI (но вы все равно должны изучить язык Swift полностью).

Спасибо, я учился пару дней, когда написал вопрос. Я на несколько дней продвинулся в курсе, поэтому я понимаю, что вы имеете в виду. Я немного удивлен, что мой пост получил какие-либо отрицательные голоса, хотя это был гениальный вопрос от человека, который только начал учиться (если бы я знал, что искать в Google в то время, я бы сделал). Тем не менее, спасибо за ваш ответ!

JasonFromLondon 07.12.2022 19:55

Другие вопросы по теме