Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Swift : generics, type parameters, reusability

Что такое дженерики? Приведите пример использования дженериков.

Этот вопрос проверяет понимание дженериков в Swift и их использование для создания гибких, многократно используемых компонентов, которые работают с различными типами данных.

Короткий ответ

Дженерики позволяют создавать универсальные типы и функции, которые могут работать с любым типом данных. Это дает возможность писать гибкий код, который можно переиспользовать с различными типами данных.

Пример дженерика:

struct Vec3D<T> {
    	let x, y, z: T
    	init(x: T, y: T, z: T) {
        	self.x = x
        	self.y = y
        	self.z = z
    	}
}

let intVector = Vec3D(x: 1, y: 2, z: 5)
let floatVector = Vec3D(x: 1.0, y: 2.0, z: 5.0)

Длинный ответ

Дженерики в Swift — это мощный инструмент, который позволяет создавать универсальные компоненты (функции, типы, структуры), способные работать с любыми типами данных. Это помогает писать более общий и многократно используемый код, избегая дублирования.

С помощью дженериков можно создавать структуры и функции, которые принимают типы данных как параметры. Это позволяет использовать один и тот же код для разных типов, таких как целые числа, строки, числа с плавающей точкой и даже кастомные типы данных.

Пример дженерика на структуре:

struct Box<T> {
    	var value: T
}

let intBox = Box(value: 10)
let stringBox = Box(value: "Hello")

Дженерики также поддерживают ограничения, позволяя задать условия, что именно за тип может быть использован, например, только типы, которые соответствуют протоколу Comparable:

func findMax<T: Comparable>(a: T, b: T) -> T {
    	return a > b ? a : b
}

let maxInt = findMax(a: 10, b: 20)  // 20
let maxString = findMax(a: "apple", b: "banana")  // "banana"

Применение:
Дженерики широко применяются для создания коллекций (массивов, словарей), функций сортировки, оберток для типов и в других случаях, где необходимо повторно использовать код для разных типов данных.

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

  • Аватар

    iOS Guru

    Roman Isakov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    3

  • Сложность:

    5

Навыки

  • Swift

    Swift

Ключевые слова

#generics

#type parameters

#reusability

Подпишись на iOS Developer в телеграм

  • Аватар

    iOS Guru

    Roman Isakov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.