Avatar
Any型の値があるときに、それがclass型なのか値型なのか判別する方法
8:47 AM
class Cat {} struct Dog {} let cat = Cat() let dog = Dog() func checkIsClassValue(_ arg: Any) -> Bool { return (arg as AnyObject) === (arg as AnyObject) } checkIsClassValue(cat) // true checkIsClassValue(dog) // false こういうの考えてるんですが、もうちょっと効率いい方法無いですかね
8:47 AM
Mirror使えばいけるかな。
8:51 AM
func checkIsClassValue(_ arg: Any) -> Bool { return Mirror(reflecting: arg).displayStyle == .some(.class) } こっちのほうが上品っぽい
📍 1