Study/Swift

[swift 문법] 1단원 스위프트 기초

minulbora 2025. 1. 7. 22:23

consol log

-print

-dump

-문자열 보간법 : 프로그램 실행 중 문자열 중간에 변수 또는 상수의 실질적인 값을 표현

import swift 

let age : Int = 19

print("안녕하세요! 저는 \(age)살 입니다!")		//19

print("안녕하세요! 저는 \(age+5)살 입니다!")	//24
class Person {
	var name : Stirng = "me"
    var age : Int = 20 
}

let people : Person = Person()

print (people)	//데이터의 주소

dump (people)	//주소와 내용

 

상수와 변수

-let

-var

let 이름: 타입 = 값

var 이름: 타입 = 값

//띄어쓰기를 신경쓸 것!

타입이 명확하다면 생략도 가능

나중에 할당하는 변수는 타입을 반드시 명시해야 함. 

 

기본 데이터 타입

//Bool 
var b: Bool = true //0이나 1은 안됨

//Int 
var i:Int = -100

//UInt 
var ui: UInt = 100	//음수 불가

//Float 
var f: Float = 3.14

//Double 
var d: Doublt = 3.14

//Character
var c: Character = "🥹"	//한글자, 혹은 유니코드로 표현 할 수 있는 모든 것! 그치만 여러 글자는 넣을 수 없음

// String 
var s: String = "example"	//캐릭터 타입과 자료교환 암시적으로 불가

 

Any, AnyObject, nil

// Any
var someAny: Any = 100
someAny = "어떤 타입도 수용 가능"
someAny = 123.12

// AnyObject : 클래스 인스턴스만 

class SomeClass {}
var someAnyObject: AnyObject = SomeClass()

//nil = null

 

collection type (Array, Dictionary, Set)

-Array : 순서가 있는 리스트 컬렉션 (배열)

-Dictionary: 키와 값의 쌍

-Set: 순서가 없고 맴버가 유일

//Array

var i: Array<Int> = Array<Int>()	//빈 Array 생성
i.append(1)
i.append(100)

i.contains(100) //true
i.contains(99)	//false

i.remove(0)	//1 삭제
i.removeLast()	//100삭제
i.removeAll()

i.count 	//0

var s: [String]()

var d: Array<Double> = [Double]()

var c: [Character] = []

let i = [1,2,3]
//	변경 불가능

//Dictionary

var dic: Dictionary<String, Any> = [String: Any]()
dic["one"] = "1"
dic["two"] =2

dic //["one":"1","two":2]

dic.removeValue(forKey: "one")

dic["two"] = nil

// 3. 불변 Dictionary: let을 사용하여 Dictionary 선언
let emptyDictionary: [String: String] = [:]
let initalizedDictionary: [String: String] = ["name": "yagom", "gender": "male"]

// 1. Set 생성 및 선언
var integerSet: Set<Int> = Set<Int>()

// insert : 새로운 멤버 입력
// 동일한 값은 여러번 insert해도 한번만 저장됩니다.
integerSet.insert(1)
integerSet.insert(99)
integerSet.insert(99)
integerSet.insert(99)
integerSet.insert(100)

print(intigerSet) // {100, 99, 1}

// contains: 멤버 포함 여부 확인
print(integerSet.contatins(1)) // true
print(integerSet.contains(2)) // false

// remove: 멤버 삭제
integerSet.remove(99) // {100, 1}
integerSet.removeFirst() // {1}

// count: 멤버 개수
integerSet.count // 1


// 2. Set의 활용
// 멤버의 유일성이 보장되기 때문에 집합 연산에 활용하면 유용합니다.
let setA: Set<Int> = [1, 2, 3, 4, 5]
let setB: Set<Int> = [3, 4, 5, 6, 7]

// 합집합
let union: Set<Int> = setA.union(setB)
print(union) // [2, 4, 5, 6, 7, 3, 1]

// 합집합 오름차순 정렬
let sortedUnion: [Int] = union.sorted()
print(sortedUnion) // [1, 2, 3, 4, 5, 6, 7]

// 교집합
let intersection: Set<Int> = setA.intersection(setB)
print(intersection) // [5, 3, 4]

// 차집합
let subtracting: Set<Int> = setA.subtracting(setB)
print(subtracting) // [2, 1]