ํฐ์คํ ๋ฆฌ ๋ทฐ
[Swift Basic] - ์์ฑ๋ ๊ฐ์ฒด๋ฅผ print ๋ฉ์๋๋ก ์ถ๋ ฅํ๊ธฐ
B_log 2021. 8. 20. 10:00๐ง๐ปโ๐ป ์์ฑ๋ ์ธ์คํด์ค์ Print ๋ฉ์๋ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฌผ์ ๋ณ๊ฒฝํ๊ธฐ
์ค์ํํธ ํ๋ก๊ทธ๋๋ฐ ์ฑ ์ ๋ณต์ตํ๋ฉฐ ๋ฌด์ฌ์ฝ ๋์ด๊ฐ๋ ๋ถ๋ถ ์ค ๊ถ๊ธํ ๊ฒ์ด ์๊ฒจ ํ ์คํธ๋ฅผ ํด๋ดค์ต๋๋ค. ์ฐ์ ์๋๋ ์ฑ ์ ๋์ค๋ print ๋ฉ์๋์ ๋ํ ์ค๋ช ์ ๋๋ค.
...
"print() ํจ์๋ ์ถ๋ ฅํ๋ ค๋ ์ธ์คํด์ค์ description ํ๋กํผํฐ์ ํด๋นํ๋ ๋ด์ฉ์ ์ถ๋ ฅํด์ฃผ๊ณ , dump() ํจ์๋ ์ถ๋ ฅํ๋ ค๋ ์ธ์คํด์ค์ ์์ธํ ๋ด๋ถ ์ฝํ ์ธ ๊น์ง ์ถ๋ ฅํด์ค๋๋ค."
...
์ด ๊ตฌ์ ์์ ํน์ ์ด๋ค ์ธ์คํด์ค๊ฐ description์ด๋ ์ด๋ฆ์ ํ๋กํผํฐ๋ฅผ ๊ฐ๊ฒ๋๋ฉด ๋ฌด์กฐ๊ฑด ๊ทธ ๊ฐ์ ์ถ๋ ฅํ๋ ์ง ๊ถ๊ธํด์ ธ ์คํ์ ํด๋ดค์ต๋๋ค. ์ฐ์ ์๋๋ ํ ์คํธ๋ฅผ ์ํ ํด๋์ค์ ๊ทธ ์ธ์คํด์ค๋ฅผ ์ถ๋ ฅํ์ ๋ ์ผ๋ฐ์ ์ธ ๊ฒฐ๊ณผ๋ฌผ ์ ๋๋ค.
class Car { let name: String init(name: String) { self.name = name } } let bmw = Car(name: "bmw") let audi = Car(name: "Audi") print(bmw) // PrintMethod.Car print(audi) // PrintMethod.Car
print ๋ฉ์๋์ ๊ฒฐ๊ณผ๋ฌผ์ด ๋จ์ํ Car ์ธ์คํด์ค์์ ํํํด์ฃผ๊ธฐ ๋๋ฌธ์ ์๋ก ๋ค๋ฅธ ์ธ์คํด์ค๊ฐ ๊ตฌ๋ณ์ด ์๋ ๋ฟ๋ง์๋๋ผ ์ํ๋ ์ ๋ณด๋ฅผ ์ถฉ๋ถํ ์ป์ ์ ์์ต๋๋ค. ์ด ๋ dump๋ฅผ ํ๋ฉด ์ ๋ณด๊ฐ ์์ธํ ํํ๋ฉ๋๋ค.
dump(bmw) //โฟ PrintMethod.Car #0 // - name: "bmw" dump(audi) // โฟ PrintMethod.Car #0 // - name: "Audi"
์ด์ ์์์ ์ธ๊ธํ description์ ํ ์คํธํด๋ณด๊ฒ ์ต๋๋ค.
Car ํด๋์ค ๋ด๋ถ์ description์ด๋ผ๋ ํ๋กํผํฐ๋ฅผ ์์ฑํด์ฃผ๊ฒ ์ต๋๋ค.
class Car { let name: String init(name: String) { self.name = name } var description: String { return self.name } } let bmw = Car(name: "bmw") print(bmw) // PrintMethod.Car
description ํ๋กํผํฐ๋ฅผ ์์ฑํด์ฃผ์์ง๋ง ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฌผ์๋ ๋ณํ๊ฐ ์์์ต๋๋ค. ๋จ์ํ ์ค๋ช ์ ์ํ ํํ์ผ๋ก description์ด๋ ํํ์ ํ ๊ฒ์ธ์ง ๊ถ๊ธํด์ ๊ณต์๋ฌธ์์์ String์ ๊ฒ์ํ์ต๋๋ค.
String์ description์ด๋ ํ๋กํผํฐ๋ฅผ ๊ฐ๊ณ ์๊ณ , ์ด description์ ์ค๋ช ์ ๋ ์ฝ์ด๋ณด๊ฒ ์ต๋๋ค.
์ค๋ช ์ ํน๋ณํ ๊ฒ์ด ์์ง๋ง ๊ฐ์ฅ ์๋์ชฝ์ ๋ณด๋ฉด CustomStringConvertible์ ์ฑํํ๋ ๊ณผ์ ์์ ์์ฑ๋๋ ํ๋กํผํฐ์์ ์ ์ ์์ต๋๋ค. ์ด์ CustomStringConvertible์ ๋ณด๋ฉด
์์ ํ๋กํ ์ฝ์ ์ฑํํ ํ์ ์ ์ธ์คํด์ค๊ฐ string์ผ๋ก ๋ณํ๋ ๋ ์ธ์คํด์ค ์์ ์ ํํํ ์ ์๋ representation์ ์ ๊ณตํ๋ค๊ณ ๋์ด ์์ต๋๋ค. ๊ทธ๋์ ์์ฑ๋ ํ์ ์ ๋จ์ํ description ํ๋กํผํฐ๋ฅผ ๊ตฌํํ๋ ๊ฒ์ด ์๋๋ผ CustomStringConvertable์ ์ฑํํ ํ ํ๋กํผํฐ๋ฅผ ๊ตฌํํ์ต๋๋ค.
class Car: CustomStringConvertible { let name: String init(name: String) { self.name = name } var description: String { return self.name } } let bmw = Car(name: "bmw i8") let audi = Car(name: "audi a7") print(bmw) // bmw i8 print(audi) // audi a7
๐ Sum Up
- ์ ๋ฆฌํ๋ฉด, print ๋ฉ์๋๋ ์ด๋ค ์ธ์คํด์ค์ description ํ๋กํผํฐ๋ฅผ ์ถ๋ ฅํด์ฃผ๋ ๊ฒ์ด ๋ง์ง๋ง ๋จ์ํ description์ด๋ ์ด๋ฆ์ ํ๋กํผํฐ๋ง์ผ๋ก๋ ๋์ํ์ง ์์ต๋๋ค. ํด๋น ํ์ ์ด CustomStringConvertible์ ์ฑํํ๊ณ , ๊ทธ ํ๋กํ ์ฝ์ด ๊ฐ์ง description์ด๋ ํ๋กํผํฐ๋ฅผ ๊ตฌํํ ์ํ์์ print ๋ฉ์๋๊ฐ ๊ทธ description ํ๋กํผํฐ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
Ref
https://developer.apple.com/documentation/swift/customstringconvertible
์ค์ํํธ ํ๋ก๊ทธ๋๋ฐ by ์ผ๊ณฐ
'iOS ์ฑ๊ฐ๋ฐ > Swift Basic' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
- Total
- Today
- Yesterday
- ๋์ ์๋ฅด๊ธฐ#์ด๋ถํ์#BOJ#Python
- ์ํธ์ฝ๋#dp#BOJ#Python
- ๋ฐฐ์ดํฉ์น๊ธฐ#๋ถํ ์ ๋ณต#BOJ#Python
- ์ฌ์๊ฐ์#๋ฐฑ์ค์๊ณ ๋ฆฌ์ฆ#Python
- filter#isalnum#lower
- ํ์ด์ฌ์๊ณ ๋ฆฌ์ฆ์ธํฐ๋ทฐ#4์ฅ
- ๋ ์ง ๊ณ์ฐ#BOJ#์์ ํ์#Python
- Distinct#Codility#Python
- ๊ณต์ ๊ธฐ ์ค์น#BOJ#์ด๋ถํ์#Python
- django
- ๋ฏธ๋ก ํ์#๋ฐฑ์ค์๊ณ ๋ฆฌ์ฆ#Python
- ํ ํ๋ก์ ํธ#๋ฐฑ์ค์๊ณ ๋ฆฌ์ฆ#Python
- NumberofDiscIntersections#Codility#Sort#Python
- django#slicing
- ์ฟผ๋ํธ๋ฆฌ#BOJ#๋ถํ ์ ๋ณต#Python
- Triangle#Sorting#Codility#Python
- ํ ๋งํ #๋ฐฑ์ค์๊ณ ๋ฆฌ์ฆ#Python
- PassingCars#Codility#Python
- ๋๋ฌด์๋ฅด๊ธฐ#BOJ#์ด๋ถํ์#Python
- API#lazy#
- Brackets#Stacks and Queues#Codility#Python
- ๋ณ๋ ๋์ดํธ#BOJ#ํ์๋ฒ#Python
- ํฐํ๋น์น#๋ฆฌ์ฝ#xbox#controller
- ๋ฐฑ์ค ์๊ณ ๋ฆฌ์ฆ#BackTracking
- ์์ด์ฌ์ดํด#BOJ#Python
- N์ผ๋ก ํํ#DP#Programmers#Python
- ๋ฆฌ๋ชจ์ปจ#์์ ํ์#BOJ#Python
- ์ข ์ด์๋ฅด๊ธฐ#๋ถํ ์ ๋ณต#BOJ#Python
- Swift#Tuples#Range
- ๋ฐ๋ณต์์ด#๋ฐฑ์ค์๊ณ ๋ฆฌ์ฆ#Python
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |