特定のタイプ/タイプのRange
を拡張するための構文を把握することができません。たとえば、私がRange<Double>
またはRange<Int>
またはその両方を拡張したければ。Swift 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. Swiftのプロトコル拡張3
- 2. Swift 3の配列拡張
- 3. 拡張エラーSwift 3 JSON
- 4. 範囲タイプを考慮したオーバーラップ番号範囲の特定方法
- 5. Swiftの配列の拡張3
- 6. 要素の範囲の内容を拡張または拡張しますか?
- 7. Swift 3配列の拡張エラー
- 8. 特定の範囲のカラーマッピング
- 9. Swift 3 ns測定のカスタム拡張? Ex。羊のヤギへの
- 10. VBAの動的範囲を拡張する
- 11. Python Raw_Input特定の範囲
- 12. 決定された要素タイプを持つSwift配列拡張
- 13. 特定のポイントの拡張
- 14. 4つの方向のVBAでアクティブセルの範囲を拡張し
- 15. Swiftで特定の範囲にバインドされた型を作成する
- 16. vimscriptで選択範囲を拡張する方法
- 17. に軸の範囲を拡張-1その軸がR
- 18. Python 3で特定のファイル拡張子を持つ一時ファイル。
- 19. jQueryオブジェクトのリテラルメソッドの拡張/オーバーライド - 範囲外の問題
- 20. 特定のクラスを拡張する汎用タイプTを再利用
- 21. Macro StartPointでの範囲拡張の問題
- 22. sumifを特定のセル範囲にロック
- 23. 拡張の動作を維持するSwiftオーバーライドプロトコル拡張
- 24. Qの特定の範囲のQsort?
- 25. 配列のインデックスが範囲外です。swift 3
- 26. VBAで特定の範囲を特定します
- 27. Xcodeの8 SWIFT IOS:範囲
- 28. 特定のウィンドウ範囲内のマウスオーバーイベント
- 29. 特定の範囲のPyomo制約
- 30. は、編集上の特定の範囲()
ありがとうアレクサンダー!それはうまくいった。 – skabob11