ぜのぜ

しりとりしようぜのぜのぜのぜ

104日目

日記

今日書いたコード

struct Hoge {}
print(
    Hoge().self, // Hoge()
    type(of: Hoge()), // Hoge
    Hoge.self, // Hoge
    // type(of: Hoge), // error: Expected member name or constructor call after type name
    Hoge.self.self, // Hoge
    type(of: Hoge.self) // Hoge.Type
)

感想

わかった?俺はわからん.

  • Hoge().selfHoge()
  • Hoge()Hogeインスタンスなのでtype(of: Hoge())Hoge
  • Hoge.selfHoge
  • type(of: Hoge)はエラー*1
  • Hoge.selfHogeなのでHoge.self.selfHoge
  • Hoge.selfの型はHoge.Typeなのでtype(of: Hoge.self)Hoge.Type

*1:ここでHoge.Typeがほしい気もする