というのを id:nakiwo さんに教えてもらった。
「struct
がそれっぽくも思えますが」
「実は enum
が公式でもやってるハックだったりします」
enum
なら無意味に init()
できるのを防げるということで活用されているらしい。たしかに、Publishers や Unicode のドキュメントを眺めると namespace と堂々書かれている。
A namespace for types that serve as publishers.
A namespace for Unicode utilities.
// 名前空間を定義 public enum Something {} // 拡張できる public extension Something { public func Hoge() { // code } }
Kotlin の場合は object という概念があるので、自分ならそれを使う気がする。
// 名前空間を定義 object Something // 拡張できる fun Something.hoge() { // code }
CombineのPublishersがenumでネームスペース表現してるの見ていまさら気がついた。たしかにstructとclassだとinitできちゃうもんな
— y.imajo (@yimajo) 2019年6月15日
Publishershttps://t.co/o3UPCAGPQe