Swift では名前空間を定義するのに enum を使う仕草がある

というのを id:nakiwo さんに教えてもらった。

struct がそれっぽくも思えますが」
「実は enum が公式でもやってるハックだったりします」

enum なら無意味に init() できるのを防げるということで活用されているらしい。たしかに、Publishers や Unicode のドキュメントを眺めると namespace と堂々書かれている。

developer.apple.com

A namespace for types that serve as publishers.

developer.apple.com

A namespace for Unicode utilities.

// 名前空間を定義
public enum Something {}

// 拡張できる
public extension Something {

    public func Hoge() {
        // code
    }
}

Kotlin の場合は object という概念があるので、自分ならそれを使う気がする。

kotlinlang.org

// 名前空間を定義
object Something 

// 拡張できる
fun Something.hoge() {
    // code
}

qiita.com

zenn.dev