Avatar
Swift、別々のモジュールで重複して同じプロトコルに準拠するのはできると思ってたけど、両方 import して呼び分けられるのか。 // ModuleA extension Int: Sequence { public func makeIterator() -> IndexingIterator<[Int]> { [self].makeIterator() } } // ModuleB import struct Foundation.Data extension Int: Sequence { public func makeIterator() -> Data.Iterator { var value = self return Data(bytes: &value, count: MemoryLayout.size(ofValue: value)).makeIterator() } } // main.swift import ModuleA import ModuleB let n = 65534 for x: Int in n { print(x) } for x: UInt8 in n { print(x) } https://github.com/koher/extension-collision-swift (edited)