ä¾å¤ãcase classã¨ãã¦å®ç¾©ãã¦ã¯ãããªã
Scalaã§ç¬èªã®ä¾å¤ãå®ç¾©ããå ´å
class MyException(message: String) extends RuntimeException(message)
ã¨
case class MyException(message: String) extends RuntimeException(message)
ã®ã©ã¡ããè¯ãã§ãããããã¿ã¤ãã«ã§è¨ã£ã¡ãã£ã¦ã¾ãããã¾ãã»ã¨ãã©ã®å ´åã¯case classã§ã¯ãªãclassã使ãæ¹ãè¯ãã¨æãã¾ãã
case classã«ããã¨ç価æ§ããã®ã¤ã³ã¹ã¿ã³ã¹ã®å±æ§ã«ãã£ã¦å¤æãããã®ã§ãåãå±æ§ãæã£ã¦ããä¾å¤ã¯åããã®ã¨è¦ãªããã¾ãã
scala> case class MyException(message: String) extends RuntimeException(message) defined class MyException scala> MyException("error") res0: MyException = MyException: error scala> MyException("error") res1: MyException = MyException: error scala> res0 == res1 res2: Boolean = true
ä¸æ¹ãclassã®å ´åã¯equalsããªã¼ãã¼ã©ã¤ããã¦ããªãéããå±æ§ãåãã§ãã¤ã³ã¹ã¿ã³ã¹ãå¥ãªãå¥ç©ã§ãã
scala> class MyException(message: String) extends RuntimeException(message) defined class MyException scala> new MyException("error") res0: MyException = MyException: error scala> new MyException("error") res1: MyException = MyException: error scala> res0 == res1 res2: Boolean = false
åºæ¬çã«ã¯case classã§ã¯ãªãclassã使ã£ãæã®æåã好ã¾ããã¨æãã¾ããmessageãåãã¨ã¯ãããèµ·ããã¿ã¤ãã³ã°ã®ç°ãªã2ã¤ã®ä¾å¤ãåããã®ã¨è¦ãªãã®ã¯ä¸èªç¶ã§ã¯ãªãã§ãããããã¹ã¿ãã¯ãã¬ã¼ã¹ã ã£ã¦ç°ãªããããããªãã§ãããã