Sobes.tech
Junior — Middle

Оё маҷмӯаи Set метавонад унсурҳои ҳар гуна навъи додаҳоро дар бар гирад ё маҳдудиятҳои навъи вуҷуд доранд?

sobes.tech AI

Ҷавоб аз AI

Дар Swift, коллекция Set метавонад элементҳои ҳар гуна навъро дар бар гирад, ки протоколи Hashable-ро мувофиқат мекунад. Ин маъно дорад, ки навъҳо бояд қобилияти ҳисоб кардани коди хешро дошта бошанд, то ягонагии элементҳоро дар Set таъмин кунанд.

Маслиҳатҳои навъҳои иҷозатдодашуда:

  • Навъҳои стандартӣ, монанди Int, String, Double — онҳо аллакай мувофиқ бо Hashable мебошанд.
  • Сохторҳо ё синфҳои фармоишӣ, агар онҳо протоколи Hashable-ро иҷро кунанд.

Маслиҳати сохтори фармоишӣ, ки барои Set мувофиқ аст:

struct Person: Hashable {
    let id: Int
    let name: String
}

var peopleSet: Set<Person> = []
peopleSet.insert(Person(id: 1, name: "Иван"))

Агар навъ мувофиқ бо Hashable набошад, онро дар Set истифода кардан мумкин нест.