티스토리 뷰

반응형

안녕하세요. 자꾸;;새로운 사실들을 알게돼서 글을 쓰게 만드네요 swift는...핳

X보다 작은 수를 푸는데... 

출력이 이런식으로 나와야합니다...

그런데...


제 출력.....ㅎ

ㅎㅎㅎㅎ;;

print라는 아이는..친절하게...newline을 해주는 아주..친절한...아이..인 것 같습니다..

그럼 말하지 않으면 newline을 안해주는 C++과 C는 친절하지 않은걸까요..?

Swift는 다른 언어들과 달리 말을 해줘야 이 친절을 그만두게 됩니다..ㅎㅎ

자 방법을 알아볼까요? ㄱㄱ




Print



자. 여러분, print를 쓰면서 print안에, 즉 ()안에는 뭐가 들어갈 수 있다고 생각하셨나요?

내가 출력할 값? 저도 그것밖에 안들어가는줄 알았습니다...

하지만, print의 원형을 봐볼까요? 

print(_:separator:terminator:)


좀 더 자세히 보면,

func print(_ items: Any..., separator: String = default, terminator: String = default)

입니다. 

이때, items부분에 저희가 늘상 하던 출력할 값이 들어가게 되는 것이었어요.

자, 그럼 separator부터 볼게요. separator? 이거 뭔가 익숙하지 않나요ㅎㅎ

스트링 쪼개기 글에서 본 것 같은 기분..

그 글을 보지않았다고 해도 separator하면 뭔가 나누는? 나눠주는애! 이런 느낌이죠? 

예제를 통해서 같이 볼게요. 


print("my name is zedd",separator : "...")

자, 이렇게 나눠줘 봤어요. 그럼 결과는 어떨 것 같으세요?

my...name...is....zedd? 정답은 


네. 그냥 my name is zedd에요.

어 머야ㅡㅡ  "..."으로 나눠준대매 ㅡㅡ


이런 실수를 하시면 안됩니다.. 지금 items라는 파라미터에는 스트링 하나가 들어갔죠? 

이 separator의 역할은 하나 이상의 스트링이든 정수든이 들어왔을 때, 그 것들을 나누어 주는 역할을 해요.


그러니까! my...name...is....zedd를 만들고 싶다면, 



이렇게 해주어야 합니다.

근데 우리는 print쓸 때 separator안썼잖아요?? default값이 " "입니다. 즉 스페이스 한번의 공백이죠.


오 신기해 신기해

이 separator는 그냥 설명드린 거구요. X보다 작은 수를 풀기위해서는 다른 파라미터가 필요합니다.

네. terminator라는 친구죠. 이름만봐도...!!! 끝나는 걸 어케 할거니? 라는 것 같죠?!?


이 친구는 default가 뭘까요...? 네..."\n"...newline이 패시브인 아이입니다. 친절한 녀석이죠.....

하지만.. 이 terminator에게 다른 값을 주면?!

이 terminator를 가장 잘 이해하는 방법은 for문 같네요. 



이런...친절한 녀석..

하지만 terminator를 다른것으로 줘봅시다.


우리가 원하는 포맷이 나왔군요!!ㅎㅎ

그렇담...


다시 문제를 풀러 가볼까요?


짠 ㅎㅎㅎ


그리고 추가로! separator와 terminator를 같이 쓸 수는 당연히 있겠죠??? 하지만, 



이렇게 하면 1...2...3...4...5이렇게 나와야 할 것 같지만,



1 2 3 4 5가 나오게 된답니다. 위 예제에서도 봤듯이 이 item들이 1개 이상이 들어와야 이 separator가 작동을 하는 것 같아요. 

그럼 1...2...3...4...5는 못만드냐?


만들 수 있어요. 그냥 item부분을 한개 이상만 주면 되는 거니까,


n옆에 ""만 해주시면, 만들 수 있게 된답니다 ㅎㅎ

1... 하고 한칸이 띄어진 이유는 terminator때문이겠죠? 

그리고 5하고 멈추지않고 5...이 된 이유는, 모든 숫자들도 마찬가지겠지만, 숫자와 ""(아무것도 없음)을 나눠주는 거에요. 그러니까 5와 ""사이에 ...가 들어가게 된거랍니다. ""는 당연히 보이지않고, ...만 남게된거죠. 

흐음..저 마지막의 ...을 없애는 방법을 더 연구해봐야겠어요 XD


오늘은 print에 대해서 공부를 해보았습니다 ㅎㅎ도움이 되었으면 좋겠어요 :)

반응형