Swift Set이란?(Collection Type 이해)
Collection Type 의 Set 으로 사용
주의: 코드와 내용 대부분은 공식 사이트에서 번역한 것입니다.자신의 총결산으로 남겼다.
Collection Type은 숫자 값을 저장하는 블록으로, swift에서 미리 준비된 데이터 유형입니다.
세 개는 swfit의 CollectionType입니다.
* 공식 웹사이트 다이어그램
Set의 피쳐
set.swift
var myset:Set = ["Mike","Mike","Cathy","Malcom"]
print(myset) // ["Malcom", "Cathy", "Mike"] Mikeが一つない!
Set에 데이터를 넣을 때 데이터 Type은 해싱할 수 있어야 합니다.Hashable 데이터 유형 = 가능한 데이터 유형을 비교합니다.
Hashable data type 예
String, Int, Bool, Double, Flat, Character 등
Hashable 데이터 형식 예가 아님
Class, Dictionary, Set, Arry 등
non-hashable.swift
class MyClass{ var num:Int = 0 }
var myClass1 = MyClass()
var myClass2 = MyClass()
var mySet2:Set = [myClass1, myClass2] //エラー!!
ünon-hashable 클래스를 저장하려고 하면 오류가 발생합니다.설정에 여러 데이터 형식을 저장할 수 있습니까?
못 하는 것도 아니지만 귀찮으니까 솔직하게 Aray를 사용하세요.
AnyType.swift
//Setの場合
var mySet2:Set<AnyHashable> = ["Mike",5,"Cathy","Malcom", 7]
print(mySet2)//[AnyHashable(5), AnyHashable("Malcom"), AnyHashable(7), AnyHashable("Cathy"), AnyHashable("Mike")]
//Arrayとの比較
var myArray:[Any] = ["my","mum", 1, 5]
print(myArray) //["my", "mum", 1, 5]
나는 AnyHashable에 출연한 적이 있는데, 역시 번거롭다.Set에 저장 + 획득 & 기본 방법
아레이의 방법과 같은 부분도 많다.
setFunctions.swift
var mySet:Set = [3,5,7,8,9,19]
print(mySet.count) //6
print(mySet.isEmpty) //false
mySet.insert(20)
print(mySet) //[19, 20, 9, 5, 7, 3, 8]
mySet.remove(5)
print(mySet) //[19, 20, 9, 7, 3, 8]
print(mySet.contains(100)) //false
var sortedSet = mySet.sorted()
print(sortedSet)//[3, 7, 8, 9, 19, 20]
마지막 방법처럼 변수를 만들어서 정렬할 수도 있다.Set Operations
셋에서 설정을 비교하고 데이터를 얻을 수 있는 편리한 방법이 있습니다!만약 a와 b가 한 조라면 다음과 같이 조합할 수 있다.
* 공식 사이트
let oddDigits: Set = [1, 2, 5, 6, 9]
let evenDigits: Set = [0, 2, 4, 6, 8]
let singleDigitPrimeNumbers: Set = [2, 3, 5, 7]
print(oddDigits.union(evenDigits).sorted())
//[0, 1, 2, 4, 5, 6, 8, 9]
print(oddDigits.intersection(evenDigits).sorted())
// [2, 6]
print(oddDigits.subtracting(singleDigitPrimeNumbers).sorted())
// [1, 6, 9]
print(oddDigits.symmetricDifference(singleDigitPrimeNumbers).sorted())
// [1, 3, 6, 7, 9]
데이터가 독특하면 이거 쓸 수 있어서 최고예요.Set Membership & Equality
간단히 말해서 Set 간의 컨텐트를 비교하고 Bool을 반환하는 방법입니다.
let houseAnimals: Set = ["🐶", "🐱"]
let farmAnimals: Set = ["🐮", "🐔", "🐑", "🐶", "🐱"]
let cityAnimals: Set = ["🐦", "🐭"]
print(houseAnimals.isSubset(of: farmAnimals))
// true
print(farmAnimals.isSuperset(of: houseAnimals))
// true
print(farmAnimals.isDisjoint(with: cityAnimals))
// true
참고 문헌
Reference
이 문제에 관하여(Swift Set이란?(Collection Type 이해)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Saayaman/items/4f3f63048d1d5924a829텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)