package Ġme . z ti any . oop ĊĊ Ċ /** Ċ Ġ* Ġ å¯Ĩ å°ģ ç±» ï¼ļ å¯Ĩ å°ģ ç±» çĶ¨æĿ¥ è¡¨ç¤º åıĹ éĻĲ çļĦ ç±» ç»§æī¿ ç»ĵæŀĦ ï¼ļ å½ĵ ä¸Ģä¸ª åĢ¼ä¸º æľī éĻĲ éĽĨ ä¸ŃçļĦ Ġ ç±»åŀĭ ãĢģ èĢĮ ä¸įèĥ½ æľī ä»»ä½ķ åħ¶ä»ĸ ç±»åŀĭ æĹ¶ ãĢĤ Ċ Ġ* Ġåľ¨ æŁĲ ç§į æĦı ä¹ī ä¸Ĭ ï¼Į ä»ĸä»¬ æĺ¯ æŀļ ä¸¾ ç±»çļĦ æī©å±ķ ï¼ļ æŀļ ä¸¾ ç±»åŀĭ çļĦåĢ¼ éĽĨåĲĪ Ġ ä¹Łæĺ¯ åıĹ éĻĲ çļĦ ï¼Į Ċ Ġ* Ġ ä½Ĩ æ¯ıä¸ª æŀļ ä¸¾ å¸¸ éĩı åıª åŃĺåľ¨ ä¸Ģä¸ª å®ŀä¾ĭ ï¼Į èĢĮ å¯Ĩ å°ģ ç±» ĠçļĦ ä¸Ģä¸ª åŃĲ ç±» åı¯ä»¥ æľī åı¯ åĮħåĲ« çĬ¶æĢģ çļĦ å¤ļä¸ª å®ŀä¾ĭ ãĢĤ Ċ Ġ* Ċ Ġ* Ġ è¦ģ å£°æĺİ ä¸Ģä¸ª å¯Ĩ å°ģ ç±» ï¼Į éľĢè¦ģ åľ¨ ç±» åĲįåīį éĿ¢ æ·»åĬł Ġsealed Ġ ä¿® é¥ ° ç¬¦ ï¼ļ Ċ Ġ* Ċ Ġ* 1 ï¼Į èĻ½çĦ¶ å¯Ĩ å°ģ ç±» ä¹Łåı¯ä»¥ æľī åŃĲ ç±» ï¼Į ä½Ĩæĺ¯ æīĢæľī åŃĲ ç±» éĥ½ å¿ħé¡» åľ¨ ä¸İ å¯Ĩ å°ģ ç±» èĩª èº« çĽ¸åĲĮ çļĦæĸĩä»¶ ä¸Ń å£°æĺİ ãĢĤ Ċ Ġ* 2 ï¼Į ï¼Ī åľ¨ ĠKotlin Ġ 1 . 1 Ġ ä¹ĭåīį ï¼Į Ġ è¯¥ è§ĦåĪĻ æĽ´ åĬł ä¸¥ æł¼ ï¼ļ åŃĲ ç±» å¿ħé¡» åµ Į å¥Ĺ åľ¨ å¯Ĩ å°ģ ç±» å£°æĺİ çļĦ åĨħéĥ¨ ï¼īãĢĤ Ċ Ġ* 3 ï¼Į æī©å±ķ å¯Ĩ å°ģ ç±» åŃĲ ç±»çļĦ ç±» ï¼Ī éĹ´ æİ¥ ç»§æī¿ èĢħ ï¼ī åı¯ä»¥ æĶ¾åľ¨ ä»»ä½ķ ä½įç½® ï¼Į èĢĮ æĹł éľĢ åľ¨ Ġ åĲĮ ä¸Ģä¸ª æĸĩä»¶ ä¸Ń ãĢĤ Ċ Ġ* 4 ï¼Į ä½¿çĶ¨ å¯Ĩ å°ģ ç±»çļĦ åħ³éĶ® å¥½ å¤Ħ åľ¨ äºİ ä½¿çĶ¨ Ġwhen Ġ è¡¨è¾¾å¼ı ĠçļĦ æĹ¶åĢĻ ï¼Į å¦Ĥæŀľ èĥ½å¤Ł Ġ éªĮè¯ģ è¯Ńåı¥ è¦ĨçĽĸ äºĨ æīĢæľī æĥħåĨµ ï¼Į å°± ä¸įéľĢè¦ģ ä¸º è¯¥ è¯Ńåı¥ åĨį æ·»åĬł ä¸Ģä¸ª Ġelse Ġ åŃĲ åı¥ äºĨ Ċ Ġ*/ Ċ Ċ private Ġsealed Ġclass ĠSe aled Expr Ċ Ċ private Ġdata Ġclass ĠConst ( val Ġnumber : ĠDouble ) Ġ: ĠSe aled Expr () Ċ private Ġdata Ġclass ĠSum ( val Ġe 1 : ĠSe aled Expr , Ġval Ġe 2 : ĠSe aled Expr ) Ġ: ĠSe aled Expr () Ċ private Ġobject ĠNot AN umber Ġ: ĠSe aled Expr () Ċ Ċ private Ġfun Ġeval ( expr : ĠSe aled Expr ): ĠDouble Ġ= ĊĠĠĠĠĠĠĠ Ġwhen Ġ( expr ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠConst Ġ-> Ġexpr . number ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSum Ġ-> Ġeval ( expr . e 1 ) Ġ+ Ġeval ( expr . e 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNot AN umber Ġ-> ĠDouble . NaN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġä¸į åĨį éľĢè¦ģ Ġ` else ` Ġ åŃĲ åı¥ ï¼Į åĽłä¸º æĪĳä»¬ å·²ç»ı è¦ĨçĽĸ äºĨ æīĢæľīçļĦ æĥħåĨµ ĊĠĠĠĠĠĠĠ Ġ} Ċ