๊ธฐํƒ€/iOS๐ŸŽ

[Swift] ๋ฌธ๋ฒ• ์ •๋ฆฌ 1 (์ถœ๋ ฅ๋ฌธ , ๋ฌธ์ž์—ด๋ณด๊ฐ„๋ฒ•, ์ƒ์ˆ˜์™€ ๋ณ€์ˆ˜, ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํƒ€์ž…, ์ง‘ํ•ฉ, ํ•จ์ˆ˜)

yujindonut 2022. 3. 31. 18:50
728x90

๐ŸŽ์ถœ๋ ฅ๋ฌธ

swift์˜ ์ถœ๋ ฅ๋ฌธ์€

-print() : ๊ฐ„๋‹จํ•œ ๋ฌธ์ž์—ด, ๋ฐ์ดํ„ฐ ๋“ฑ์„ ์ถœ๋ ฅํ•  ๋•Œ ์‚ฌ์šฉ๋จ

-dump() : ์ธ์Šคํ„ด์Šค์˜ ์ž์„ธํ•œ ์„ค๋ช…์„ ์ถœ๋ ฅํ• ๋•Œ


print()๋Š”

seperator() = ๊ตฌ๋ถ„์ž: ์‰ผํ‘œ ์ฐ์—ˆ์„๋•Œ ๊ทธ ์‚ฌ์ด๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒƒ์ด default๋กœ " "์ด๋‹ค.

terminator() = ์ข…๊ฒฐ์ž : print๊ฐ€ ๋๋‚ฌ์„๋•Œ ๋„ฃ๋Š” ๋ฌธ์ž๊ฐ€ default๋กœ "\n"์œผ๋กœ ์ •ํ•ด์ ธ์žˆ๋‹ค.

์ถœ๋ ฅ๊ฒฐ๊ณผ


๊ฐ์ฒด๋ฅผ ์ถœ๋ ฅํ• ๋•Œ๋Š” dump๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ๊ทธ ์•ˆ์˜ ๊ฐ์ฒด ์ •๋ณด๋ฅผ ์ƒ์„ธํžˆ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

๋”•์…”๋„ˆ๋ฆฌ ์ •๋ณด๋„ ์ƒ์„ธํžˆ ์•Œ๋ ค์ค€๋‹ค!


๐ŸŽ๋ฌธ์ž์—ด ๋ณด๊ฐ„๋ฒ• == ๋ฌธ์ž์—ด์„ ์ด์–ด๋‚˜๊ฐ€๋Š” ๋ฐฉ๋ฒ•

๋ณด๊ฐ„๋ฒ• : ๋‘ ์ ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ• 

 


๐ŸŽ์ƒ์ˆ˜์™€ ๋ณ€์ˆ˜

๋ณ€์ˆ˜ : ๋ณ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’ - var

์ƒ์ˆ˜ : ๊ณ ์ •๋œ ๊ฐ’ - let

 

๐ŸŽ์„ ์–ธ

(ํ‚ค์›Œ๋“œ) (์ด๋ฆ„) : (ํƒ€์ž…) = (๊ฐ’)

var name : String = "yujindonut"

let age : Int = 10

 

Swift๋Š” ๊ฐ’์— ๋”ฐ๋ผ์„œ ํƒ€์ž…์„ ์ถ”๋ก ํ•ด์„œ ํƒ€์ž…์„ ์ง€์ •ํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

(ํ‚ค์›Œ๋“œ) (์ด๋ฆ„) = (๊ฐ’)

 


๐ŸŽ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํƒ€์ž…

โœ… Bool

true / false ๋ฅผ ๋‹ด๋Š”๋‹ค! Swift์—์„œ๋Š” 0 / 1 ๋Œ€์ž…์ด ๋ถˆ๊ฐ€ํ•˜๋‹ค!!!

โœ… Int

์ •์ˆ˜ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๋‹ด์„ ์ˆ˜ ์žˆ๋‹ค.

0.1๊ณผ ๊ฐ™์€ ์ •์ˆ˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ์ˆซ์ž๋ฅผ ๋„ฃ์„ ๊ฒฝ์šฐ ์˜ค๋ฅ˜๋ฐœ์ƒ

 

โœ… UInt : Unsigned Integer

์–‘์˜ ์ •์ˆ˜ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๋‹ด์„ ์ˆ˜ ์žˆ๋‹ค. 0ํฌํ•จ

Int ๋ณ€์ˆ˜๋ฅผ Unit๋ณ€์ˆ˜์— ๋Œ€์ž…ํ•˜๋ฉด ์ปดํŒŒ์ผ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•จ

 

โœ… Float / Double

32bit / 64bit ์‹ค์ˆ˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ์Œ

์„œ๋กœ ๋‹ค๋ฅธ ํƒ€์ž…๋ผ๋ฆฌ๋Š” ๋ฐ”๋กœ ๋Œ€์ž…์ด ๋ถˆ๊ฐ€๋Šฅํ•จ

 

โœ… Character

๋ฌธ์ž ํƒ€์ž…์„ ๋‹ด์„ ์ˆ˜ ์žˆ์Œ

๋ฌธ์ž์—ด("๋ฌธ์ž์—ด")์„ ๋Œ€์ž…์‹œ ์˜ค๋ฅ˜! ์˜ค์ง ๋ฌธ์ž! ('๋ฌธ์ž')

 

โœ… String

๋ฌธ์ž(Character)ํ˜•๊ณผ๋Š” ๊ฒฐํ•ฉ์ด ๋˜์ง€ ์•Š๋Š”๋‹ค

๋ฌธ์ž์—ด๋ผ๋ฆฌ๋Š” ๊ฒฐํ•ฉ ๊ฐ€๋Šฅ

์—ฌ๋Ÿฌ์ค„์„ ๋„ฃ์„๋•Œ๋Š” ๊ฒน๋”ฐ์˜ดํ‘œ(""" ~~ """)

 

โœ… Any 

๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ๊ฐ’ 

Any๋ฐ์ดํ„ฐ ํ˜•์„ ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ๋Œ€์ž…์‹œ ๋ฐ˜๋“œ์‹œ!!ํ˜•๋ณ€ํ™˜์ด ํ•„์š”ํ•˜๋‹ค

var someAny : Any = 100

someAny = 123.12 // ์‹ค์ˆ˜๋„ ๋Œ€์ž… ๊ฐ€๋Šฅ

someAny = "HI" // ๋ฌธ์ž์—ด๋„ ๋Œ€์ž…๊ฐ€๋Šฅ 

 

let someNum : Double = someAny // ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค

 

โœ… AnyObject

Any๋ณด๋‹ค๋Š” ์ข์€ ์˜๋ฏธ

๋ชจ๋“  ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค ๋Œ€์ž… ๊ฐ€๋Šฅ

์ผ๋ฐ˜ ๋ฐ์ดํ„ฐ ํ˜•์„ ๋Œ€์ž…ํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค

 

โœ… Nil

ํŠน์ • ํƒ€์ž…์ด ์•„๋‹ˆ๋ผ '์—†์Œ'์„ ์˜๋ฏธํ•˜๋Š” ์Šค์œ„ํ”„ํŠธ ํ‚ค์›Œ๋“œ

Any / AnyObject์—๋Š” nil ๋Œ€์ž…์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค

Optional ๋ณ€์ˆ˜์—๋งŒ ๋Œ€์ž…์ด ๊ฐ€๋Šฅํ•˜๋‹ค

 


๐ŸŽ์ง‘ํ•ฉ(Collection)

โœ… Array 

"์ˆœ์„œ๊ฐ€ ์žˆ๋Š”" , "์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด"

var integers : Array<Int> = Array<Int>()

var integers : Array<Int> = [Int]()

var integers : [Int] = [Int]()

var integers : [Int] = []

var integers : [Int] = Array<Int>()

var integers = [Int]()

 

Array์ด๋ฆ„.append(์›์†Œ) : ๋ฐฐ์—ด์— ์›์†Œ๋ฅผ ๋„ฃ๊ณ  ์‹ถ์„๋•Œ

Array์ด๋ฆ„.contains(์›์†Œ) : ์žˆ๋‹ค๋ฉด true/false๋กœ ๋ฐ˜ํ™˜๋จ

Array์ด๋ฆ„.remove(at: (์ธ๋ฑ์Šค๋ฒˆํ˜ธ)) : ํ•ด๋‹น ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ์˜ ์›์†Œ๋ฅผ ์ง€์šฐ๊ณ  ์‹ถ์„๋•Œ

Array์ด๋ฆ„.removeLast() : Array์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ๋ฅผ ์ง€์šฐ๊ณ  ์‹ถ์„๋•Œ

Array์ด๋ฆ„.removeAll() : ๋ชจ๋“  ์›์†Œ ์‚ญ์ œ

Array์ด๋ฆ„.count : ์›์†Œ ๊ฐœ์ˆ˜ - Int๋ฐ˜ํ™˜

Array์ด๋ฆ„.firstIndex(of : 100) : 100์ด ๊ฐ€์žฅ ์ฒซ๋ฒˆ์งธ๋กœ ๋‚˜์˜ค๋Š” index๋ฅผ ๋ฐ˜ํ™˜

Array์ด๋ฆ„.lastIndex(of : ์›์†Œ)

Array์ด๋ฆ„[index] = ๋Œ€์ž…ํ•˜๊ณ  ์‹ถ์€ ์›์†Œ

Array์ด๋ฆ„.first : ์ฒซ๋ฒˆ์งธ ๊ฐ’ 

Array์ด๋ฆ„.last : ๋งˆ์ง€๋ง‰ ๊ฐ’

Array์ด๋ฆ„[Index] : ํ•ด๋‹น index์˜ ์›์†Œ๊ฐ’ 

โœ… Dictionary

"Key ์™€ Value ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ ์ปฌ๋ ‰์…˜ "

"์ˆœ์„œ๊ฐ€ ๋ณด์žฅ ๋˜์ง€ ์•Š๋Š” "

"key๊ฐ’์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ• ๋•Œ ์œ ์šฉ"

 

var dic : [Int : String] = [:]

var dic = [Int : String]()

var dic : Dictionary = [Int:String]()

var dic : Dictionary<Int,String> = Dictionary<Int, String>()

var dic : [Int : String] = [1:"zedd", 2:"swift", 3:"hi"] //์„ ์–ธ๊ณผ ๋™์‹œ์— ์ดˆ๊ธฐํ™”

 

dic.updateValue("๋ฐ”๊พธ๊ณ ์‹ถ์€๊ฐ’", forKey: 3) 3์ด key์ธ ๋ถ€๋ถ„์— "๋ฐ”๊พธ๊ณ ์‹ถ์€๊ฐ’"์ด ๋Œ€์ž…์ด ๋  ๊ฒƒ!

 

dictionary์ด๋ฆ„[ํ‚ค๊ฐ’]! // ๋Š๋‚Œํ‘œ : key๊ฐ’์— ๋Œ€ํ•œ value๊ฐ€ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€๋ฅผ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, optionalํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๊ฐ’์„ ์‚ฌ์šฉํ• ๋•Œ์—๋„ ์–ธ๋ž˜ํ•‘ !(๊ฐ’) ์„ ์‚ฌ์šฉํ•ด ๊ฐ’์„ ๊บผ๋‚ด์˜จ๋‹ค!

 

dic.removeValue(forKey : ํ‚ค๊ฐ’) key๊ฐ’์„ ํ†ตํ•ด ์ ‘๊ทผํ•ด ์‚ญ์ œ

dic.removeAll() : ์ „๋ถ€ ์‚ญ์ œ

 

โœ… Set

"์ง‘ํ•ฉ"

"์ˆœ์„œ๊ฐ€ ๋ณด์žฅ ๋˜์ง€ ์•Š๋Š” "

"๋ฉค๋ฒ„๊ฐ€ ์œ ์ผํ•œ ๊ฒƒ์„ ๋ณด์žฅํ•˜๋Š”"

 

integerSet.insert()

integerSet.Contains()

integerSet.remove()

integerSet.removeFirst()

integerSet.count

 


๐ŸŽํ•จ์ˆ˜

func ํ•จ์ˆ˜์ด๋ฆ„(๋งค๊ฐœ๋ณ€์ˆ˜ ์ด๋ฆ„ : ๋งค๊ฐœ๋ณ€์ˆ˜ํƒ€์ž…, ๋งค๊ฐœ๋ณ€์ˆ˜์ด๋ฆ„ : ๋งค๊ฐœ๋ณ€์ˆ˜ํƒ€์ž… ) -> ๋ฐ˜ํ™˜ํƒ€์ž… {

       return ๋ฐ˜ํ™˜๊ฐ’

}

 

๋ฐ˜ํ™˜ํƒ€์ž…์€ Voidํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜ํ•˜๊ฑฐ๋‚˜ ์ƒ๋žต ๊ฐ€๋Šฅ

func printSum(sum : Int) {

    print(sum)

}

 

ํ•จ์ˆ˜ ํ˜ธ์ถœ

func sum (a:Int, b: Int) -> Int {

    return a + b

}

sum(a : 3, b : 5)

โœ… ์ „๋‹ฌ์ธ์ž ๋ ˆ์ด๋ธ”

ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์“ฐ๋Š” ์ด๋ฆ„๊ณผ ํ˜ธ์ถœ ํ• ๋•Œ ์“ฐ๋Š” ์ด๋ฆ„์„ ๋ถ„๋ฆฌํ• ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค



func greeting(to friend : String, from me : String) {

    print("Hello \(friend)! I'm \(me)")

}

greeting(to : "hana", from : "pig")

โœ… ๊ฐ€๋ณ€ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ธฐ๋Šฅ ์ œ๊ณต

 ๊ฐ€๋ณ€ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ถ€๋ถ„์— ๋ฐ์ดํ„ฐ๊ฐ€ 0 ~ ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

 

func sayHi(me : String, friends:String ... ) -> String{

return "hello \(friends)! I'm \(me)!"

}

print(sayHi(me : "yujindonut", friends:"1","2","3"))

//hello ["1","2","3"]! I'm yujindonut

print(sayHi(me : "yujindonut"))

//hello []! I'm yujindonut

 

โœ… ํ•จ์ˆ˜๋„ ํ• ๋‹น์ด ๊ฐ€๋Šฅํ•˜๋‹ค

ํ•จ์ˆ˜๋„ ํ• ๋‹น๋ฟ ์•„๋‹ˆ๋ผ, ์‹ค์งˆ์ ์ธ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.

ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

func greeting(to friend : String, from me : String){

print("Hello \(friend)! I'm \(me)")

}

var someFunction : (String, String) -> Void = greeting(to:from:)

someFunction("eric", "apple") // Hello eric! I'm apple



lef f : (Data) -> Void = {}

func doSometing(withData data: Data, action : (Data) -> Void) {

action(data)

}

doSometing(data,action)
728x90