[Swift 기본 문법] Array, Set, Dictionary

11989 단어 swiftswift

Array

스위프트는 타입에 대하여 엄격하다(Safe Type)
자바스크립트는 배열타입이 값에 따라 변하지만
스위프트는 직접 타입을 할당해줘야 한다.

var myNames = Array<String>()
var myAges = [Int]()

.append로 배열에 값을 추가할 수 있다.

myNames.append("kim")
myNames.append("lee")
myNames.append("jin")

.append로 한개 이상의 값을 삽입 할 수 있다

myNames.append(contentsOf: ["hi", "hello"])
myNames = myNames + ["bye", "goodbye"]

순서의 값으로 데이터 지우기

myNames.remove(at: 0)

insert를 사용해 순서를 지정하여 값을 넣어줄 수 있다

myNames.insert("hahaha", at : 0)
for name in myNames {
    print(name + "님")
}
//enumerated를 사용해서 index와 값을 같이 불러올 수 있다
for (index, name) in myNames.enumerated(){
    print(index, name)
}

Set

import UIKit

/*
 Set과 Array의 다른점은 순서가 없고 중복되는 값을 넣을 수 없다는 것이다.
 Set에서는 append는 사용을 못하고 insert로 값을 넣어줄 수 있다.
 */

var names = Set<String>()
names.insert("kim")
names.insert("min")
names.insert("lee")
names.insert("lee")
names.insert("lee")
names.insert("lee")
// "lee"를 여러번 넣어줬지만 names안에는 "kim","lee","min"밖에 없다

// 따라서 Set을 활용해 배열의 중복을 없앨 수 있다
var sameNames = ["lee","lee","kim","lee"]
Set(sameNames)

var names2 : Set = ["lee","kim","min"]
// 이런식으로도 선언 가능


//배열간 집합
var numbers1 : Set = [1,2,3,4,5]
var numbers2 : Set = [4,5,6,7,8]

//합집합
numbers1.union(numbers2)
//교집합
numbers1.intersection(numbers2)
//대칭차집합(합집합 - 교집합)
numbers1.symmetricDifference(numbers2)
//여집합
numbers1.subtracting(numbers2)

Dictionary

import UIKit

// Dictionary는 Keys 와 Values타입이다.

var namesOfStreet = [String : String]()

namesOfStreet["302ro"] = "1st Street"
namesOfStreet["303ro"] = "2nd Street"

// Any타입으로 Int와 String을 자유롭게 넣어 줄 수 있다.
var anyTypeValue = [String : Any]()
anyTypeValue["key1"] = "Value1"
anyTypeValue["key2"] = 2

// 이런식으로도 할당 가능
var  namesOfStreet2 = ["a" : 1, "b" : 2, "c" : 3]

좋은 웹페이지 즐겨찾기