@gomi_ningen's Website

タグ付けできない休日

package object tagged { type Tagged[A, T] = {type Tag = T; type Self = A} type @@[T, Tag] = Tagged[T, Tag] } case class Hoge(id: String @@ Hoge) case class Foo(id: String @@ Foo) scala> val hogeStr: String @@ Hoge] = "123".asInstanceOf[String @@ Hoge] scala> val fooStr: String @@ Foo] = "123".asInstanceOf[String @@ Foo] scala> val hoge1 = Hoge(hogeStr) //=> OK scala> val hoge2 = Hoge(fooStr) //=> NG scala> hogeStr + "456" //=> "123456"

これを Swift で書こうとして無理だと悟って休日が終わりました。はぁ...。 はやく...

Read More

Copyright © 53ningen.com