나의 답)
import Foundation
func solution(_ my_string:String, _ k:Int) -> String {
return String(repeating: my_string , count: k)
}
.
.
.
문자열을 곱하라니 무슨 말이지....
한국어 번역 된 swift 공식문서 문자열 부분을 아무리 뒤져도 못찾아서 결국 검색을 해버렸다.
문자열 곱하기라고 치면 답 나올까봐 '문자열 반복하는 방법' 이런식으로 검색했다가 발견..!
[Swift] init(repeating:count:)
(내가 문자열 반복하는 방법 검색하다 발견한 블로그...!! 감사합니다ㅜ)
거기서 방법을 발견했다.
영문 공식문서에만 있어서 못 찾았구나..
이니셜라이저 인 줄 꿈에도 몰랐다.
사용방법을 보고 바로 실습 고고!!!!!
잘 웃어주고 있다.
그렇게 프로그래머스 문제를 해결할 수 있었다.
let repeatedArray = Array(repeating: "Hello", count: 5)
print(repeatedArray) // ["Hello", "Hello", "Hello", "Hello", "Hello"]
블로그 글들을 뒤져보다 어느 블로그에서 Array(repeating:count:)
라고 설명하는 걸 보았다.
아 Array
도 가능하구나 하며 넘겼는데,
생각해보니 공식문서는 저렇게 안 써있었다.
머지?
알아보니 공식 문서에서 init(repeating:count:)
로 표기하는 이유는
Swift의 이니셜라이저가 사실상 init
메서드이기 때문이라서,
문서에서는 이 이니셜라이저가 이미 Array
의 일부임을 전제로 하고 있기 때문에
메서드 이름을 init(repeating:count:)
로만 적어도 이해할 수 있게 설명했다고 한다.
하긴.. 근데 난 저 내용이 collection
에 있었어도 계속 String
쪽에서 찾아봤을 것 같다..^
아무튼 그래도 코드에서 실제로 사용할 땐 !
Array(repeating:count:)
처럼 타입 이름과 함께 이니셜라이저를 호출해야 한다.
이유는 이니셜라이저를 타입 내부의 특별한 함수로 다루기 때문인데,
Array
외에도 String
, Dictionary
등 여러 타입에서 이와 같은 방식으로 이니셜라이저를 정의한다고 한다.
이니셜라이저를 정말 많이 이해해야 한다고 생각하는 요즘이다.
강의를 해주시는 튜터님들도 이니셜라이저의 중요성을 강조하시는 걸 몇 번 들었는데,
애플도 이니셜라이저를 특별한 함수로 취급하고 있으니..
이쁨받는 친구는 친하게 지내야하는 법, 뭐 그런거 아닐까.
그래도 오늘 String(repeating:count:)
라는 아주 간단하고 직관적인 방법으로
문자열을 여러 번 반복할 수 있게 해준다는 걸 알았으니 아주 만족스럽다고 할 수 있다.
오 주말에도 열공하시는군요
저라면 for문에 + 넣고 떠났을텐데
덕분에 새로운 문법 하나 알아가네여