У меня есть общий тип (Bar), что тенит реализацию функции foo в зависимости от t :
struct Bar {
func foo() {
print("foo generic")
}
func foo() where T == String {
print("foo string")
}
}
< /code>
Когда я его называю, он работает так, как я ожидаю: < /p>
B().foo() // foo generic
B().foo() // foo string
Теперь я создаю другую функцию, которая вызывает foo внутри объекта:
func boo() { foo() }
Но когда я вызываю BOO , он не использует строку «Shadow» Ally.B().boo() // foo generic
вещи, которые я попробовал:
Я попытался отметить общую функцию @_disforuvedoverload , но она ничего не сделала. И я был удивлен, когда это не сработало. Я хотел бы знать, почему это решение не сработало.struct Bar {
let inner: Far
func boo() {
inner.foo()
}
}
struct Far {
func foo() {
print("foo generic")
}
func foo() where T == String {
print("foo string")
}
}
< /code>
Уведомление: < /h3>
Я столкнулся с этой проблемой, создавая тело Swiftui. Так что я не могу использовать некоторые решения.// Very simplified.
struct MyView: View {
let client: APIClient
var body: some View {
Button("Fetch") {
Task(operation: fetchData) // Always calls generic
}
}
func fetchData() async {
await client.fetch()
}
func fetchData() async where APIClient: FetchSpecially {
await client.specialFetch()
}
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... -but-not-i
Функции/свойства затенения/свойства с использованием Generics работают вне объекта, но не внутри него? ⇐ IOS
Программируем под IOS
1754309160
Anonymous
У меня есть общий тип (Bar), что тенит реализацию функции foo в зависимости от t :
struct Bar {
func foo() {
print("foo generic")
}
func foo() where T == String {
print("foo string")
}
}
< /code>
Когда я его называю, он работает так, как я ожидаю: < /p>
B().foo() // foo generic
B().foo() // foo string
Теперь я создаю другую функцию, которая вызывает foo внутри объекта:
func boo() { foo() }
Но когда я вызываю BOO , он не использует строку «Shadow» Ally.B().boo() // foo generic
вещи, которые я попробовал:
Я попытался отметить общую функцию @_disforuvedoverload , но она ничего не сделала. И я был удивлен, когда это не сработало. Я хотел бы знать, почему это решение не сработало.struct Bar {
let inner: Far
func boo() {
inner.foo()
}
}
struct Far {
func foo() {
print("foo generic")
}
func foo() where T == String {
print("foo string")
}
}
< /code>
Уведомление: < /h3>
Я столкнулся с этой проблемой, создавая тело Swiftui. Так что я не могу использовать некоторые решения.// Very simplified.
struct MyView: View {
let client: APIClient
var body: some View {
Button("Fetch") {
Task(operation: fetchData) // Always calls generic
}
}
func fetchData() async {
await client.fetch()
}
func fetchData() async where APIClient: FetchSpecially {
await client.specialFetch()
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79723560/shadowing-functions-properties-using-generics-works-outside-the-object-but-not-i[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия