특정 유형/유형의 Range
을 확장하기위한 구문을 파악하는 데 어려움이 있습니다. 예를 들어 Range<Double>
또는 Range<Int>
또는 두 가지 모두를 확장하려는 경우입니다.스위프트 3 특정 유형의 범위 확장
1
A
답변
1
직접하실 수 없습니다. 그것은 Swift의 현재 누락 된 기능입니다. 당신은 더미 프로토콜을 사용하여 주위를 얻을 수 있습니다 :
protocol _Int {}
extension Int: _Int {}
extension CountableClosedRange where Bound: _Int {
var sum: Int {
// These forced casts are acceptable because
// we know `Int` is the only type to conform to`_Int`
let lowerBound = self.lowerBound as! Int
let upperBound = self.upperBound as! Int
let count = self.count as! Int
return (lowerBound * count + upperBound * count)/2
}
}
print((1...100).sum) //5050
FloatingPoint
또는 Integer
프로토콜도 여기에 유용 할 수 있습니다.
1
비슷한 문제가 있었지만 다른 해결책이 작동하지 않았습니다. 이것은 단지
extension CountableClosedRange where Bound == Int {
...
}
를 사용
extension CountableClosedRange where Bound: Integer, Bound == Int {
...
}
했다 (코드 완료)를 코딩에 잘 작동하지만 컴파일하는 동안 분할 오류 (11) 결과.
관련 문제
- 1. 스위프트 3 확장 형식으로 제한
- 2. 확장 오류 스위프트 3 JSON
- 3. 스위프트 3 - 조건부 확장 테이블보기 셀 높이
- 4. 스위프트 2에서 스위프트 3
- 5. 스위프트 2에서 스위프트 3
- 6. 스위프트 3
- 7. 스위프트 3
- 8. 스위프트 3 :
- 9. 스위프트 3~
- 10. , 스위프트 3
- 11. 가드 스위프트 2에서 스위프트 3
- 12. UIView의 isKindOfClass 스위프트 3
- 13. 스위프트 3 - 가능한 두 가지 유형의 사전 정의
- 14. 스위프트 3의 범위 계산 계산
- 15. 스위프트 인덱스, 범위, 거리 이해하기
- 16. FBSDKGraphRequestHandler 스위프트 3 오류
- 17. 스위프트 3 SEGUE는
- 18. 스위프트 3 : 자르기 이미지
- 19. 스위프트 프로토콜 지향 확장
- 20. 스위프트 3 인스턴스 멤버 유형
- 21. 스위프트 3 : 편의 초기화 확장 재단의 '타이머'가 멈춤
- 22. 스위프트 3. 데이터 타스크 오류
- 23. 계산 유형의 범위
- 24. 는 prefersStatusBarHidden, 스위프트 3/아이폰 OS 10부터 스위프트 3
- 25. 스위프트 3 NSWindowStyleMask은 스위프트 3 엑스 코드 8 업데이트 후
- 26. 스위프트 2.3의 스위프트 3 프레임 워크를 사용합니다.
- 27. 스위프트 라디오 버튼 - CheckBoxes - 스위프트 3
- 28. 확장 동작을 유지하는 스위프트 오버라이드 프로토콜 확장
- 29. CompletionHandler 스위프트 3
- 30. DISPATCH_QUEUE_T는 스위프트 3
감사합니다. Alexander! 그게 효과가 있었어. – skabob11