본문 바로가기

ambiguous

(2)
[Swift] error: ambiguous use of 'split(separator:maxSplits:omittingEmptySubsequences:)' 너무 간단한 코드를 짜는데, 너무 이상한 에러가 발생했다. 코드가 풀려고 하는 문제는 문자열을 단어별로 분리해서, 가장 짧은 단어의 길이를 찾는 것이다. 빈칸이 포함된 어느정도 길이의 문자열이 인자로 주어지고, 빈칸으로 단어가 나누어진다. 푸는 알고리즘은 간단하다 주어진 문자열을 빈칸으로 나누어 ( spllit 메소드 ) 단어의 시퀀스로 만든다 시퀀스의 각 단어의 길이를 .count 로 구한다. 이를 매핑해서 단어길이의 시퀀스로 변환한다. 단어길이의 시퀀스에서 가장 작은 것을 .min() 으로 구한다. 코드를 보면 한줄로 끝이 난다. (아래 코드는 가독성을 위해 줄바꿈을 추가.) func find_short(_ str: String) -> Int { return str.split(separator: " ..
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 } 부분의 + 를..