Avatar
omochimetaru 6/3/2021 4:39 AM
MutableCollectionを例に出せば直感的には理解できると思う。 func coll() -> some MutableCollection { ... } var a = coll() a[a.startIndex] = 1 // だめ。aのElementがIntかどうかはわからない a.forEach { (x) in // OK。x: Elementがなんでもいいので print(x) }
4:40 AM
↑ところでここの x に対して型を書く記法が無いっすね。
4:40 AM
func coll() -> some MutableCollection { ... } var a = coll() a[a.startIndex] = 1 // だめ。aのElementがIntかどうかはわからない a.forEach { (x: #type(of: a).Element) in // OK。x: Elementがなんでもいいので print(x) } ↑無理やり考えるならこうか (edited)
4:41 AM
#_returnType(of: coll) って実在してたっけ。