Swift가 오픈소스화되었기 때문에 표준 라이브러리에 방법을 추가하려고 합니다
3665 단어 Swift
나는 즉시 맥에 넣어서 그 일을 써 보려고 했다.
이번 일
그룹에 uniq () 방법을 추가하려고 시도합니다.
[1, 2, 3, 1]의 이런 배열을 [1, 2, 3]로 바꾸다.
추가 단계
Swift 설치
설치는 이쪽 기사를 참고하도록 해 주세요.
오픈 소스 Swift 구축 시도
다음 명령을 통해 설치되었습니다.
원래 기사에는 없었지만 cmake가 필요하다는 말에 넣었어요.
git clone [email protected]:apple/swift.git swift
git clone [email protected]:apple/swift-clang.git clang
git clone [email protected]:apple/swift-llvm.git llvm
git clone [email protected]:martine/ninja.git
brew install cmake
swift/utils/build-script # 1時間くらいかかる
스위프트를 돌려보도록 하겠습니다.
build 폴더 아래에 Swift가 있기 때문에 실행해 보십시오.
build/Ninja-DebugAssert/swift-macosx-x86_64/bin/swift
이렇게 하면 지령선으로 이동할 수 있다.그룹에 uniq () 방법을 추가하는 방법
swift/stdlib/public/core/Sequence.swift 파일을 열고 다음 처리를 어디에 추가합니다.
SequenceType은 배열이 실시하는 프로토콜로 Filter/map 등 유명한 방법이 이 프로토콜에 있다.
extension SequenceType where Generator.Element : Equatable {
@warn_unused_result
public func uniq() -> [Generator.Element] {
return reduce(Array<Generator.Element>()) { (arr, element) -> [Generator.Element] in
if arr.contains({ $0 == element }) { return arr }
var newArr = arr
newArr.append(element)
return newArr
}
}
}
다시 세우다.구축 차점만 있어서 10분 정도면 끝납니다.
swift/utils/build-script
Swift를 다시 시작하면 uniq 메서드가 작동합니다.build/Ninja-DebugAssert/swift-macosx-x86_64/bin/swift
Reference
이 문제에 관하여(Swift가 오픈소스화되었기 때문에 표준 라이브러리에 방법을 추가하려고 합니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shimesaba/items/a6f6403f4208705e0c30텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)