본문 바로가기

스위프트

(11)
Swift Closure error: ambiguous use of operator 기초문법을 훑고 있습니다. closure 라는 것이 나와서, 가장 간단한 축약표현을 한번 써보고 싶었습니다. 그런데, error: ambiguous use of operator '+' 라는 에러가 발생하네요. 코드는 아래와 같습니다. for ab in [ [1,2], [3,4] ] { let a = ab[0] let b = ab[1] for op in [ { $0+$1 }, { $0-$1 } ] { print(a, b, op(a, b)) } } 코드의 의도는 정수쌍에 대해서 더하기도 해보고, 빼기도 해보고 그 결과값을 확인해 보는 겁니다. 더하기와 빼기 같은 연산자를 for 루프에 돌려보기 위해서, closure 를 만들어 썼습니다. 에러메시지는 for op in 라인에서 { $0+$1 } 부분의 + 를..
Swift Optional 몇가지 실험 swift 문법을 조금 공부해 봤는데, Optional 이라는 개념이 나한테는 새로운 개념이라 몇가지 실험을 해 보았다. 우선 Optional 을 내가 이해한 것은 아래와 같다. swift 에서 변수는 디폴트로 nil 을 허용하지 않는다. 이렇게 하는 편이 예상치 못한 NPE 오류를 방지하는 디자인이다. (내 추측) 하지만 nil 이 필요한 변수가 있을 수 있다. 그래서 nil 도 assign 할 수 있는 Optional 변수형을 따로 만들었다. Optional 은 nil 또는 값을 assign 할 수 있다. 값이 들어가 있을 때에도 Optional(값) 형태로 한번 포장되어 있는 상태다. 사용하려면 좀 번거롭지만, unwrap 작업이 필요하다. unwrap 을 할 때에는 nil 인지를 먼저 확인하는 것..
swift 코드를 간단히 console에서 실행하기 간략한 swift 스크립트를 간단히 MacOS의 콘솔에서 실행하려면 1. shebang 으로 swift 를 지정하고 실행하기 swift 소스파일 맨 앞에 shebang (#!) 으로 다음과 같이 지정한다. #!/usr/bin/env swift import Foundation print("Hello") 또는 #!/usr/bin/env xcrun swift import Foundation print("Hello") Linux 환경에서는 xcrun 이 없으니까 두번째는 안 됨. vim 등 간략한 소스편집기로 위와 같이 작성하고서, 스크립트에 실행권한 추가( chmod +x )하고, 실행한다. $ chmod +x hello.swift $ ./hello.swift Hello 2. swift 명령의 인자로 swif..