코딩테스트를 연습하다보면 Playground를 이용하거나
입력값이 필요한 사이트의 경우 Command Line Tool을 사용하게 됩니다.
Command Line Tool 템플릿으로 프로젝트를 생성하면
main.swift 파일이 기본적으로 추가되어 있습니다.
처음에는 main.swift 파일에서 문제를 풀고나서
그 다음 문제를 풀 때는 다른 swift 파일을 만들어서 문제를 풀었는데
이런 문장이 뜨면서 error 가 발생했습니다.
Expressions are not allowed at the top level ?
이게 뭐지 ... 뭐지 ... 하고 찾아본 내용을 적어봅니다
애플리케이션 진입점 및 "main.swift"
앞서 대부분 의 앱 소스 파일에는 최상위 코드가 허용되지 않는다고 말했습니다. 예외는 "main.swift"라는 이름의 특수 파일입니다. 이 파일은 플레이그라운드 파일과 매우 유사하지만 앱의 소스 코드로 빌드됩니다. "main.swift" 파일에는 최상위 코드가 포함될 수 있으며 주문 종속 규칙도 적용됩니다. 실제로 "main.swift"에서 실행할 코드의 첫 번째 줄은 암시적으로 프로그램의 주요 진입점으로 정의됩니다. 이것은 최소한의 Swift 프로그램이 "main.swift"에 있는 한 단일 라인이 되도록 합니다.
사실 조금 어려운 내용인 것 같아서 제대로 이해한 것인지 모르겠지만
현재의 제가 이해한대로 정리를 해보면 ...
swift 파일들은 거의 대부분 최상위 코드 가 허용되지 않으나,
playground 내 파일이나 지금처럼 main.swift 파일 같은 예외 케이스에 한해서 최상위 코드가 허용되는 것 같습니다.
여기서 최상위 레벨이라 함은 ... 함수나 클래스 등으로 감싸지 않은 구문이라고 하네요.
그래서 main.swift가 아닌 곳에서 함수를 실행시키면 오류가 떴던 것 같네요
만약에 여러분이 여러 코딩테스트 문제들을 하나의 프로젝트로 관리하고 싶으시다면
Command Line Tool 프로젝트 내에 각각의 문제에 해당하는 swift 파일을 만드시고
함수 구현은 그 파일내에서 하시되 함수의 실행은 main.swift에서 해주시면 될 것 같습니다 !
🔗 참고한 애플 공식문서
'iOS > iOS' 카테고리의 다른 글
[iOS] iOS 16 enable Developer Mode (2) | 2022.09.24 |
---|---|
[iOS] 커스텀 폰트, 다국어 폰트 적용하기 (0) | 2022.09.04 |
[iOS] 번역 꿀팁 정리 (0) | 2022.08.15 |
[iOS] Xcode에서 쓰는 주석 정리하기 (1) | 2022.06.11 |
[iOS] isHidden에 대하여 (0) | 2022.04.02 |