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 

좋은 웹페이지 즐겨찾기