ãã®ããŒãã§ã¯ã倢ãšå®éšãè©Šã¿ãŸãããã¿ãã«ã§äœãã§ããã®ã§ããããïŒ ããããæ倧éã«æŽ»çšããã«ã¯ïŒ 圌ãã®å©ããåããŠããã°ã©ãã³ã°èšèªããã匷åã§è¡šçŸåè±ãã«ããæ¹æ³ãçã®ã³ãŒãããã«ãŒãžã®è³è³ãåèµ·ããæ¹æ³ããããŠåæã«æ®éã®ããã°ã©ããŒãããŸãæ··ä¹±ãããªãæ¹æ³ïŒ ããŸããŸãªæ¹åã§ã¿ãã«ã®ã»ãã³ãã£ã¯ã¹ãæ£ç¢ºãã€æ£ããå€æ¿ãããšãèšèªã«ã¯ã©ã®ãããªäºæ³å€ã®å¯èœæ§ãçŸããŸããïŒ
ãã®ãããããã°ã©ãã³ã°èšèªã®èšèšã«é¢ãããããã¯ã®äžé®®æããããªããŒã奜ããªããç«ã®äžã§ãé¡ãããŸãã
æ§æ
ãŸããæ§æã決å®ããŸãããã ã³ãŒãã§ã¿ãã«ãèšèšããããã®ããŸããŸãªãªãã·ã§ã³ãæ€èšããã®ã«é·ãæéããããå¯èœæ§ããããŸã-äžæ¬åŒ§ãäžžæ¬åŒ§ãäžè¬ã«æ¬åŒ§ãªã... ãããã£ãŠãã¿ãã«ã¯ååãŸãã¯åŒã®ã·ãŒã±ã³ã¹ã§ãããã³ã³ãã§åºåãããäžæ¬åŒ§ã§å²ãŸããŠããŸãã C ++ã®çµ±ååæåãšåæ§ã
{1,2,3} {i, j, k}
ãããã圌ãã«ã¯ååšããæš©å©ãšä»ã®éžæè¢ããããŸãããç§ãã¡ã®ç®çã«ãšã£ãŠã¯ä»ã®ãšããããã§ååã§ãããã
ãŸããç¯å²ãšç¹°ãè¿ãããã¿ãã«ãäœæãããšããç°¡åãªã¢ã€ãã¢ã«æ³šç®ããããšæããŸãã ç¯å²-åæèŠçŽ ïŒæŽæ°ããã³åæèŠçŽ ãå«ãïŒã®ã¿ãã«ãæå®ããæ¹æ³
{1..10}
ç¹°ãè¿ã-ã¢ã»ã³ãã©ãŒããååŸããã¡ãœããã§ãåãå€ã§ã¿ãã«ãåããããšãã§ããŸã
{10 dup 'A'}
ãã®èšäºã§ã¯ããããã®æ¹æ³ã¯äœ¿çšãããçŸããã¢ã€ãã¢ãšããŠãã¡ããã©ãã®ããã«èšåããŸããã
äžè¬çãªã¢ã€ãã¢
æåã®éšåã§ã¯ã誀解ãåŒãèµ·ããç¹å®ã®èãã«èšåããŸãã-ã¿ãã«ã¯ããŸã£ããåã§ã¯ãããŸãããã åããŠã£ãããã£ã¢ãéããšã æ確ã«èšã
PythonãMLãªã©ã®äžéšã®ããã°ã©ãã³ã°èšèªã§ã¯ãã¿ãã«ã¯ç¹å¥ãªããŒã¿åã§ãã
éçåä»ãã䜿çšããããã°ã©ãã³ã°èšèªã§ã¯ãã¿ãã«ã®èŠçŽ ãç°ãªãåã«å±ããããšãã§ãããã®ãããªåã®ã»ãããã¿ãã«ã®åã«ãã£ãŠäºåå®çŸ©ããããšããç¹ã§ãã¿ãã«ã¯ãªã¹ããšç°ãªããŸããã€ãŸããã¿ãã«ã®ãµã€ãºã決å®ãããŸã äžæ¹ãã³ã¬ã¯ã·ã§ã³ïŒãªã¹ããé åïŒã«ã¯ãä¿åãããã¢ã€ãã ã®ã¿ã€ãã«å¶éããããŸãããé·ãã®å¶éã¯ãããŸããã
ããããããŸã£ããã¿ã€ãã§ã¯ãªãããšèšã£ããšããç§ã¯ã©ãããæå³ã§ãããïŒ ã³ã³ãã€ã«æ®µéã§ä»»æã®ãªããžã§ã¯ããããŒã«ã«ã«ã°ã«ãŒãåã§ãããããªèšèªæ§æãå¿ èŠãªå ŽåããããŸãïŒããªãé »ç¹ã«ïŒã è¿œå ã®ãšã³ãã£ãã£ãå°å ¥ããã«ãåã«æ§æéšåãšåçã«ãªãã°ã«ãŒããšã€ãªã¢ã¹ã å®éãããã¯ã¿ãã«ããããã«ç°ãªãèŠç¹ããèŠãããã®åãªãæ¹æ³ã§ãã ããšãã°ãé¢æ°ããã®è€æ°ã®æ»ãã ããã¯ããã¿ãã«ãã¿ã€ãã®1ã€ã®ãªããžã§ã¯ãã®æ»ããšããŠå®å šã«èããããšãã§ããŸãã ãããäžæ¹ã§ãè€æ°ã®æ»ãå€ã®å²ãåœãŠæäœã¯ãå€ãã®æäœã®1ã€ã«ãããŸããã Rustã®äŸã§ã¯ãã¿ãã«ã«å¯Ÿããå¥ã®æäœã®å¯èœæ§ãã€ãŸãåçæ§ã®æ¯èŒãèŠãŸããã ãããããã¹ãŠã®æäœãã¿ãã«ã§å®è¡ã§ããããã«ãããã©ãã§ããããïŒ ããŸããŸãªè³ªåãããã«çºçããŸã-ãããã¯ã©ã®ãããªçš®é¡ã®æäœã«ãªããŸããïŒé·ãã®ç°ãªãã¿ãã«ãã¿ãã«ãåäžã®å€ã«å¯ŸããŠå®è¡ã§ããŸããïŒ ã¿ãã«ãé¢æ°ã«è»¢éããã»ãã³ãã£ã¯ã¹ãèæ ®ããããšãã§ããŸãïŒããšãã°ãé¢æ°ã«æž¡ããšãã«ã¿ãã«ããæ¡åŒµããããã¿ãã«ã®ãã¹ãŠã®èŠçŽ ã§é¢æ°ãå®è¡ãããªã©ïŒã ãã¡ãããã¿ãã«ãäœæããã³å解ãã䟿å©ãªæ段ãã¿ãã«ã®èŠçŽ ãžã®ã¢ã¯ã»ã¹ãå¿ èŠã«ãªããŸãã ããããä»ã®äœãïŒ..
é¢æ°ãšã¿ã€ãç¡å¹ããã®è€æ°ã®æ»ãå€
æãåçŽãªãã®ããå§ããŸãããããã§ã«å€ãã®èšèªã§å®è£ ãããŠããŸã-é¢æ°ããè€æ°ã®ãªã¿ãŒã³ããããŸãã é¢æ°ã¯è€æ°ã®å€ãè¿ãããšãã§ããé¢æ°ãè€æ°ã®åŒæ°ãåãããšãã§ããããã«ãããã€ãã®å€ã®ã¿ãã«ãè¿ããšåŒã³ãŸãã 次ã®äžè¬åã¯ãããèªäœã瀺åããŠããŸããåäžã®å€ãè¿ãé¢æ°ã¯ãåäžã®å€ã®ã¿ãã«ãè¿ããŸãã å°ãªããšãã ããå€ããã®ã¿ãã«ããããã®åãå€ã«èªç±ã«å€æããããã®éãåãã§ãããšããé¡ããšããŠãšãããããšãã§ããŸãã
ããã«å€æ¿ãããšãvoidåã«ãªããŸãã ãåç¥ã®ããã«ãããã¯ãé¢æ°ãçµæãè¿ããªãããšã瀺ãããã«ãã»ãšãã©ã®ããã°ã©ãã³ã°èšèªã§äœ¿çšãããç¹æ®ãªã¿ã€ãã§ãã ãã®ã¿ã€ãã®ãªããžã§ã¯ãã®äœæã¯çŠæ¢ãããŠããŸãã voidãæ¬æ Œçãªã¿ã€ãã§ã¯ãªããé·ããŒãã®ã¿ãã«ã®æå®ã§ãããšæšæž¬ããããšã¯ãŸã£ããå°é£ã§ã¯ãããŸããã éåžžã®æå³ã§ãã®ã¿ã€ãã®ãªããžã§ã¯ããäœæããããšã¯æ¬åœã«äžå¯èœã§ãã ããããã³ã³ãã€ã©ãŒãããé«åºŠãªæ¹æ³ã§ã¿ãã«ãåŠçã§ããå Žåã空ã®ã¿ãã«{}ã®åœ¢åŒã§voidåã®ãç䌌ãªããžã§ã¯ãããå°å ¥ããããã§äœããè¡ãããšã劚ãããã®ã¯äœããããŸããã 質åã¯äœã§ããïŒ ãŸããã©ã®ãããªå Žåã«åœ¹ç«ã¡ãŸããïŒ ä»ã®ãšãããããã«æ³šæããŠã次ã®å€æ¿ã«é²ã¿ãŸãã
è€æ°ã®æäœ
é¢æ°ããã®è€æ°ã®æ»ãå€ãšãé¢é£ããè€æ°ã®å²ãåœãŠã調ã¹ãŸããã ãã ããå²ãåœãŠã¯å€ãã®å¯èœãªæäœã®1ã€ã«ãããŸããã å²ãåœãŠïŒãã¹ãŠã®éå§å ïŒãšã®é¡æšã«ãããã¿ãã«ã§ä»ã®æäœãæ§ç¯ããããšããŸãã
{x,y,z} = foo(); // , foo() 3 {x,y,z} += foo(); // , ? {x,y,z} ++; // {x,y,z} = {1,2,3} + {a,b,c}; //
ãããŸã§ã®ãšãããèŠãç®ã¯è¯ãããã§ããããããããå€æ°ã®æäœã䌎ããã®ãããªåŒãã©ã®ããã«èŠããã®ããšããèãã¯å°ãèŠæå¿ã匷ããã®ã§ãã åŒã®åãªããžã§ã¯ããåãèŠçŽ æ°ã®ã¿ãã«ã§ããããšãéèŠã§ãã ãã®èŠåããã®éžè±ã¯ãããã°ã©ãã³ã°èšèªãèšèšããéã«é¿ããã¹ãããŸããŸãªãããŸãããçããããŸãã ããã«ãããããããããããèæ ®ããå¿ èŠããããŸãïŒãããŠå¯èœã§ããã°ãããããèš±å¯ããããã«ïŒã
ã°ã«ãŒãéå¶
è€æ°ã®æäœã«å ããŠãã¿ãã«ãšåäžã®å€ã«å¯Ÿããã°ã«ãŒãæäœã¯äŸç¶ãšããŠéåžžã«é åçã§ãã å®éãããã¯ãåŒã®åãªãã©ã³ãã®åãèŠçŽ æ°ã®èŠåããã®æåã®éžè±ã§ãã ããããç§ã¯ãããçŸããèŠãããã®ã§ãç§ãã¡ã¯è©ŠããŠã¿ãŸãïŒ
{i, j, k} = 0; // ... , , ? ++{i, j, k}; // ... {i, j, k} += 100; // rec.{x,y,z}.At(i).flag = true; //
ãã®ãããªäºé æŒç®ã®äžè¬çãªåœ¢åŒã¯ã ãã¿ãã«æŒç®åå€ããŸãã¯ãå€æŒç®åã¿ãã«ãã§ã ïŒã»ãšãã©ã®æŒç®ã¯å¯æã§ãïŒã ãŸãã ãå€æŒç®åã¿ãã«ããšãã圢åŒã§ã¯ã1ã€ã®å€æ°ãã¿ãã«å šäœã«å²ãåœãŠãŸããç¹ã«ããã«ããã«ãªã¿ãŒã³é¢æ°ã®çµæã§ãã
x = {1, 2, 3}; // x ? x = foo(); // foo() , x ?
é¢æ°ããè€æ°ã®æ»ãå€ãå²ãåœãŠãç¶æ³ã§ã¯ãæããã«ãæåã®æ»ãå€ããxãã«æžã蟌ã¿ã次ã®æ»ãå€ã¯ç¡èŠããå¿ èŠããããŸãã ããã¯äºæ³å€ã®ãããŸããã§ãã ããããã©ããããããããã解決ããå¿ èŠããããŸã-ç§ã¯æ¬åœã«ãã®ãããªæ§æãæã¡ããã§ãã ã°ã«ãŒãã®å²ãåœãŠã ãã§ãªããå€ãã®èå³æ·±ãå Žåã«ã圹ç«ã¡ãŸãã ããšãã°ãé åã«ã€ã³ããã¯ã¹ãä»ããããååã§æ§é äœãã£ãŒã«ãã«ã¢ã¯ã»ã¹ãããããããšãæäœã§ãã
arr[ {1,2,3} ] = { 10, 20, 30 }; // obj.{x,y,z} = {10,20,30}; // ... {obj1, obj2, obj3}.x = { 10, 20, 30 }; // ... {arr1, arr2, arr3} [ 0 ] = {10, 20, 30 }; //
åŒã®æãããªæçœãã«ãããããããæ£åŒã«arr [{1,2,3}]ã¯ãå€æŒç®åã¿ãã«ããšãã圢åŒã§ããããã§ããå€ãã¯arrããã¿ãã«ãã¯{1,2,3}ãããã³ãæŒç®åãã§ãã -è§æ¬åŒ§ã ã¿ãã«ãåäžã®å€ã«å²ãåœãŠãã®ãšã¯ç°ãªããããã§ã¯åé¡ã¯çºçããŸããããã®ãããªæäœã®çµæã¯ã¿ãã«{arr [1]ãarr [2]ãarr [3]}ã§ãªããã°ãªããŸããã ããããã³ã³ãã€ã©ã«ãšã£ãŠã¯ããã®å²ãåœãŠããã®ã€ã³ããã¯ã¹ä»ãã¯åãªããã€ããªæäœã§ãã ã€ãŸããx = {1,2,3}ãšãã圢åŒã®åŒã¯{x = 1ãx = 2ãx = 3}ã«å±éããå¿ èŠããããŸããã€ãŸããå€æ°xã«ã¯ã¿ãã«ã®ãã¹ãŠã®å€ãé çªã«å²ãåœãŠãããçµæãã¿ãã«ã«ãªããŸãïŒãã®ãããªããã°ã©ãã³ã°èšèªã¯çŸå®ã«ãããŸãã-ããã¯ã©ããªã€ã³ã¿ãã¥ãŒã«ãšã£ãŠãèå³æ·±ãåãæ»ãã®è³ªåã§ãããïŒãã®èŠçŽ ã¯äœã«çããã§ããããïŒ{1,2,3}ãŸãã¯{3,3,3}ïŒïŒ
ãããã£ãŠãã¿ãã«ãšå¯äžã®èŠçŽ ã«å¯Ÿããæäœã®é©åãªç·šæã®åé¡ã¯æªè§£æ±ºã®ãŸãŸã§ãã
ããŸããŸãªãµã€ãºã®ã¿ãŒã²ããã«å¯Ÿãããã€ããªæäœ
ããäžè¬çãªã±ãŒã¹-ã¿ãã«ã®ãµã€ãº-ãã€ããªæŒç®ã®ãªãã©ã³ããäžèŽããªãå ŽåãèããŠã¿ãŸãããã ãã®å Žåã®å¯ŸåŠæ¹æ³ ãã€ãã®ããã«ãæãç°¡åãªè§£æ±ºçã¯æåŠããããšã§ã:)ãããããããç解ããŠã¿ãŸããã... GoãšRustã¯ç¹å¥ãªã¡ã¿å€æ°ã_ãïŒã¢ã³ããŒã¹ã³ã¢ïŒãæã£ãŠããŸãã æ§æã§ã¯ãããã¯æ¬¡ã®ããã«ãªããŸãã
{x, _ ,z} = foo(); {x, _, z} = {1, 2, 3};
ã¿ãã«ã®2çªç®ã®ã³ã³ããŒãã³ãã䜿çšããæäœã¯ãåã«ç¡èŠãããŸãã Go and Rustã§ã¡ã¿å€æ°ã_ãã䜿çšããããšã¯ãè¿ãããã¿ãã«ã®çµæãå¿ èŠãªãå Žåã®è€æ°ã®å²ãåœãŠã«å¿ é ã§ãã ãããã£ãŠããããã®èšèªã§ã¯ãã¿ãã«ã®ãµã€ãºã匷å¶çã«äžèŽãããå¿ èŠããããŸãã ãããããããã®èšèªã§ã¯ãå²ãåœãŠä»¥å€ã«è€æ°ã®æäœã¯ãããŸããã ã¡ã¿å€æ°ã_ããä»ã®æäœã«å€æ¿ããããšãããšãéåžžã«èå³æ·±ãçµæãåŸããããããå¥ã®ç« ã§æ€èšããå¿ èŠããããŸãã
äžè¬çãªã±ãŒã¹ãèããŠã¿ãŸãããïŒãã®ãããªåŒãæžãããå Žåã®å¯ŸåŠæ¹æ³ïŒ@ã¯äžè¬åãããäºé æŒç®ã§ãïŒ
{a, b} @ {x, y, z}
ãªãã·ã§ã³ã¯äœã§ããïŒ
- å°ãããµã€ãºã®ã¿ãã«ã®ãµã€ãºã§æäœãå®è¡ããŸãã ã€ãŸããçµæã¯{a @ xãb @ y}ã§ãã ã°ã«ãŒãæäœãšççŸããŸãïŒåäžã®å€ã1ã€ã®èŠçŽ ãæã€ã¿ãã«ãšåçãšèŠãªãããå ŽåïŒ-ã°ã«ãŒãæäœã§ã¯ãåäžã®ãªãã©ã³ããã¿ãã«ã®åèŠçŽ ãšå¯Ÿè©±ããå¿ èŠããããŸãã
- 倧ããªãµã€ãºã®ã¿ãã«ã®ãµã€ãºã§æäœãå®è¡ããŸãã ããã«ãå°ããªã¿ãã«ã®èŠçŽ ãååã§ã¯ãªãã£ã倧ããªã¿ãã«ã®èŠçŽ ã¯å€æŽãããŸããã {a @ xãb @ yãz}ã åãçç±ã§ã°ã«ãŒãæäœã«ãåããŸãã
- 倧ããªãµã€ãºã®ã¿ãã«ã®ãµã€ãºã§æäœãå®è¡ããŸãã å°ããã¿ãã«ãçµäºãããããã®å é ãŸã§åŸªç°ããŸãã {a @ xãb @ yãa @ z}ã ããã¯ã°ã«ãŒãæäœã«å¯Ÿå¿ããŸãããé£è§£ã§ãã
- 倧ãããµã€ãºã®ã¿ãã«ã®ãµã€ãºã«å¯ŸããŠæäœãå®è¡ããå°ããã¿ãã«ãçµäºããããå°ããã¿ãã«ã®æåŸã®èŠçŽ ã«å¯ŸããŠæäœãå®è¡ããŸãã {a @ xãb @ yãb @ z}ã ãŸããã°ã«ãŒãæäœã«å¯Ÿå¿ããé£è§£ã§ãã
- ã1ã€ã®ã¿ãã«ã®åèŠçŽ ãšå¥ã®ã¿ãã«ã®åèŠçŽ ãïŒããã«ã«ãç©ãïŒã®ãã¢ã§æäœãå®è¡ããŸãã {a @ xãa @ yãa @ zãb @ xãb @ yãb @ z}ã ãŸããã°ã«ãŒãæäœã«å¯Ÿå¿ããé£è§£ã§ãã ãšããã§ããã¢ãã°ã«ãŒãåããæ¹æ³ã®åé¡ãçºçããŸã-æåã®ã¿ãã«ãŸãã¯2çªç®ã®ã¿ãã«ããŸãã¯ãã®ä»ã®æ¹æ³ã
ããããä»ã®ãªãã·ã§ã³ããããŸãã ãããä»ã1ã€ã®ããšãæããã§ãããã®æ©äŒãããã°ã©ãã«äžããå Žåãã¿ãã«ãã©ã®ããã«çžäºäœçšããããæ瀺çã«ç€ºãå¿ èŠããããŸã ã ãã®å Žåãããã¯ã³ãŒãã®æå¿«ããç¶æããããã®ã»ãšãã©ã®åææ¡ä»¶ã§ãã ãã®ããããã®è¡šçŸãã«ããŒããããã€ãã®ããŒã¯ãŒãã䜿çšã§ããŸãã ãã®ãããªåèªã®ãªã¹ãã¯æå®ããŸãããïŒä»¥åã¯ããªãã·ã§ã³ããšã«ããŒã¯ãŒãããããšä»®å®ã§ããŸãïŒ
èŠçŽ ãžã®ã¢ã¯ã»ã¹
ãããŠä»ãç§ãã¡ã¯å¥ã®éèŠãªæ©äŒã«ç®ãåããã¹ãã§ã-ã¿ãã«ã®èŠçŽ ãžã®ã¢ã¯ã»ã¹ã
åŸæ¥ãã€ã³ããã¯ã¹äœæã«ã¯è§æ¬åŒ§ã䜿çšãããååã«ããã¢ã¯ã»ã¹ã«ã¯ããªãªãã䜿çšãããŸãã ããããä»ããã€ã³ããã¯ã¹ä»ãã®Swiftãªãã·ã§ã³ã¯ããã»ã©æªãã¯ãããŸããããæ°å€ã®ä»£ããã«ååä»ãã®æ°å€å®æ°ã䜿çšããå Žåã¯ãããŸãã§ãããéåžžã¯çããã§ãã ã€ã³ããã¯ã¹ïŒéèŠ-å®æ°ã€ã³ããã¯ã¹ïŒã«ããã¢ã¯ã»ã¹ã«ã¯è§æ¬åŒ§ã䜿çšããååïŒããå ŽåïŒã«ããã¢ã¯ã»ã¹ã«ã¯ãã€ã³ãã䜿çšããããšã奜ã¿ãŸã
{10,20,30}[1]; // 20 {x:10,y:20,z:30}.z; // 30
ãã¹ãŠãã·ã³ãã«ã«èŠããŸããïŒ å®éã«ã¯ãããããŸããã ã[]ãã®ã€ã³ããã¯ã¹ä»ããæ§é ãããã®ååä»ãã¡ã³ããŒã®åç §ãªã©ãã¿ãã«ã«è€æ°ã®ã°ã«ãŒãæäœãå°å ¥ããããããããã®æäœãèŠçŽ ãè€éãªãªããžã§ã¯ãã§ããã¿ãã«ã§äœ¿çšããå ŽåãããããïŒ-äœããã¹ãããæ確ã§ã¯ãããŸããïŒã¿ãã«ã®èŠçŽ ã«ã¢ã¯ã»ã¹ããããã¿ãã«ã®ãã¹ãŠã®èŠçŽ ã§ã°ã«ãŒãæäœãå®è¡ããŸããïŒ
{arr1, arr2, arr3} [1] // "arr2" "{arr1[1], arr2[1], arr3[1]} " ? {x:obj1, y:obj2, z:obj3}.z // "obj3" "{obj1.z, obj2.z, obj3.z}" ?
å¥ã®èå³æ·±ãåŽé¢ã¯ãã¿ãã«ã®ååŸïŒæ§ç¯ïŒã§ãã æ £äŸã«ãããèšäºã®åé ã§åãäžããããã«ãäžæ¬åŒ§ã䜿çšããŠã¿ãã«ãªããžã§ã¯ããç°¡åã«æ§ç¯ããŸãã ãã ããå Žåã«ãã£ãŠã¯ãèŠçŽ ãåé€ãŸãã¯è¿œå ããŠå¥ã®ã¿ãã«ããã¿ãã«ãäœæããå¿ èŠããããŸãã æ§æçã«ã¯ãããã¯ãè€æ°ã®ã€ã³ããã¯ã¹ä»ããã䜿çšããŠå®è¡ã§ããé åãŸãã¯æ§é äœãšæ¬è³ªçã«åãã«ãŒã«ãé©çšããŸãã
ã¿ãã«ãååŸããã«ã¯ãè€æ°ã®ã€ã³ããã¯ã¹ãŸãã¯ç¯å²ã䜿çšã§ããŸãã
{a,b,c,d,e}[1,4,0] // {b,e,a} {a,b,c,d,e}[1..4] // {b,c,d,e} {a,b,c,d,e}[1..3,0] // {b,c,d,a}
ïŒã€ã³ããã¯ã¹æäœèªäœã«ã¯è§ãã£ããå«ãŸããŠãããããäžãã£ãå ã«ãã1ã€äžãã£ããæžãããšã¯ã§ããŸããïŒ
èŠçŽ ã«è€åãªããžã§ã¯ãåãããå Žåãååã§é£çµ¡ã§ããŸãã
obj.{a, d, e} // obj.{b .. f} // -
èå³æ·±ãçµæã«æ³šæããå¿ èŠããããŸã-ã¿ãã«ã¯å®æ°ã€ã³ããã¯ã¹ã«ãã£ãŠã€ã³ããã¯ã¹ä»ãããããããã¢ã€ãã¢ã¯ãã£ãŒã«ãåãå®æ°ã€ã³ããã¯ã¹ã«å€æãããããšã瀺åããŠããŸãïŒéãå¯èœã§ãïŒ
ãããã£ãŠãå°ãªããšã2ã€ã®ãç¹å¥ãªãæäœãããããããšãè§æ¬åŒ§ããããããããã¯ã¿ãã«èªäœãç©åãªããžã§ã¯ããšããŠæ©èœãããããšãã§ããŸãã ã¿ãã«ã®æ®ãã®æäœã¯äœãšãªãå®çŸ©ãããŠããŸããããããšãã°ãã¿ãã«ã®é£çµïŒ2ã€ä»¥äžã®ã¿ãã«ã1ã€ã®é·ãã¿ãã«ã«ãã©ããã°ã«ãŒããïŒãå¿ èŠã§ãããšæ³å®ã§ããŸãã ãããã£ãŠã質åãçºçããŸãïŒ ã¿ãã«ã®èŠçŽ ã«ã¢ã¯ã»ã¹æäœãçŽæ¥éžæããå¿ èŠããããŸããïŒ ãŸãã¯ãã¿ãã«ã®åèŠçŽ ã®æäœã匷調衚瀺ããæ¹ãæ£ããã§ããïŒ
æäœããæ©èœãŸã§
ãã¹ãŠã®æäœã¯ãããã€ãã®æ©èœãšåçã§ãã ããšãã°ãåé ãããå転æŒç®ãxã¯negïŒxïŒãšããŠè¡šçŸã§ãã2é²å ç®x + yã¯sumïŒxãyïŒãšããŠè¡šçŸã§ããŸãã
ãããã£ãŠãã¿ãã«ã®æäœãè€æ°ã®æäœãšããŠèãããšãçåãçããŸã-é¢æ°åŒã³åºãããã®ãããªåŒã«é¢äžããŠããå Žåã¯ã©ããªããŸããïŒ
éå§ããã«ã¯ãåé æŒç®ïŒ
~{1,2,3}; // neg({1,2,3}); //
ãã°ã«ãŒãå²ãåœãŠããšåæ§ã«ãã¿ãã«ã次ã®ããã«å±éããå¿ èŠããããŸãã
{neg(1), neg(2), neg(3)}
äžèŠãããã¯éåžžã«è«ççã«æããŸãã é¢æ°èªäœã¯åäžã®å€ãåããåäžã®å€ãè¿ããŸãã ã¿ãã«ãæ§æã§ããããã«ãåäžã®å€ãè¿ãå¿ èŠããããŸãã
ããããã2ã€ã®åŒæ°ãæã€é¢æ°ãåæ§ã«å±éã§ããŸãã äŸãã°
{1,2,3} + {4,5,6} sum( {1,2,3}, {4,5,6} )
ã§
{ sum(1,4), sum(2,5), sum(3,6) }
ã¿ãã«ã®æé»çãªè€æ°é¢æ°åŒã³åºãã®æ§æã¯æé»çã§ãããæäœãšåæ§ã«ããã®ãããªåŒã³åºããæå®ããæ瀺çãªæ¹æ³ã¯ãããèªäœã瀺åããŠããŸãïŒãã®ãããªåŒã³åºãã®å¯èœæ§èªäœã¯æªãã¯ãããŸãããïŒã
äžæ¹ãGoãDãCâã®æ§æãæãåºããŠãã ãããé¢æ°ã«æž¡ãããã¿ãã«ã¯åŒæ°ãªã¹ãå ã§å±éããã察å¿ããåŒæ°ã®æ°ã眮ãæããŸãã ãããŠäžè¬çã«ãããã¯éåžžã«è«ççã§äºæ³ããããã®ã§ããããã¯ããã°ã«ãŒããã»ãã³ãã£ã¯ã¹ãšã¯äºææ§ããããŸããïŒ ã©ãããããããã®ççŸã解決ããããšã¯å¯èœã§ããïŒ åŒæ°ã¿ãã«ã®æ¬¡å ãäžèŽããªãå Žåãã¿ãã«ãšåäžã®å€ãæ··åšããå Žåãã¿ãã«èŠçŽ ã®æäœã®çµæãããã«ã«ãç©ãååŸããå Žåãªã©ãè€éãªãªãã·ã§ã³ã¯ãŸã æ€èšããŠããŸããã
ããªãè¯ããšæããã解決çã¯ãC ++ããå¥åŠãªããšã«ååã«æ¥ãŸããã å¯å€æ°ã®ãã©ã¡ãŒã¿ãŒãæã€ãã³ãã¬ãŒããªã©ã®æ©äŒããããçç¥èšå·ã䜿çšããæ§æã¯ããã©ã¡ãŒã¿ãŒã®ããã±ãŒãžïŒãšããã§ãã¿ãã«ïŒãå¥ã®ãã³ãã¬ãŒãã«è»¢éããããã«äœ¿çšãããŸãã çç¥èšå·ã¯ããã®ã³ã³ããã¹ãã§ãã®åŒæ°ããæããã«ããããŠããããšãèŠèŠçã«ç€ºããŠããŸãïŒããã¯ã³ãŒãã®èªèã«ãšã£ãŠéåžžã«éèŠã§ãïŒïŒã ãããã³ãŒãã§ããã«èŠããããšãéèŠã§ãã ç®ã«èŠããªãå¯äžã®ãã®ã¯ããããæããã«ããåŒæ°ã®æ°ã§ãã ãããã詳现ã«æå®ãããå Žå-ã¿ãã«ã®åã ã®èŠçŽ ãžã®ã¢ã¯ã»ã¹ã劚ãããã®ã¯äœããããŸãã
foo(t..., 10, 20); // foo(t[0], t[1], t[2], 10, 20); // foo(tx, ty, tz, 10, 20); //
æåŸã«ãæãé£ããç¶æ³ïŒè€æ°ã®ãã©ã¡ãŒã¿ãŒãšç°ãªãé·ãã®ã¿ãã«ãæã€é¢æ°ãããã€ãã®ïŒãŸãã¯ãã¹ãŠã®ïŒãã©ã¡ãŒã¿ãŒã«è»¢éãããŸãã ãã€ããªæŒç®ã®ç¶æ³ãšåæ§ã«ããã®ãããªåŒã³åºããé瀺ããå€ãã®å¯èœæ§ããããŸãïŒæå°èŠçŽ æ°ã«ããè€æ°ã®é¢æ°åŒã³åºããçãã¿ãã«ã®ç°ãªãã¿ã€ãã®è¿œå ã«ããæ倧ããã«ã«ãç©ãªã©ã ãããã®ãã¹ãŠã®ã¡ãœãããç解ããã®ã¯éåžžã«é£ããããããããã®ã¡ãœããã¯ããããæ瀺çã«å®£èšããå¿ èŠããããŸããããšãã°ãé¢æ°ãåŒã³åºãåã«é©åãªããŒã¯ãŒãã䜿çšããŸãã
METAå€æ°ã_ã
ã¿ãã«ãå²ãåœãŠããšãã«ãœãŒã¹ã¿ãã«ã®èŠçŽ ãç¡èŠããããã«äžéšã®èšèªã§äœ¿çšãããã¡ã¿å€æ°ã_ãã®åäœã«æ»ããŸãã ãã®ã¡ã¿å€æ°ãããè€éãªã±ãŒã¹ã«å€æ¿ã§ãããã©ãããèŠãŠã¿ãŸãããïŒçµå±ãä»£å ¥ã¯åãªããã€ããªæäœã§ãïŒã
{x,y,z} = {1,2,3} + {a,_,c};
åæ§ã«ãã_ãã«æ°å€2ãè¿œå ããæäœã¯ç¡èŠãããŸãããçµæã¯ã©ããªããŸããïŒ äžè¬ã«ã2ã€ã®å¯èœæ§ããããŸããçµæã®ã¿ãã«ã«æ°å€2ãæ®ãããããã«ã_ããé åžããŸãã æåã®ã±ãŒã¹ã§ã¯ãã_ãã¯ã äžç«èŠçŽ ããšèŠãªãããšãã§ããŸãã æäœïŒã€ãŸããæäœã@ãããã³åŒæ°ãxãã®å Žåãx @ _ == _ @ x == xã¯trueïŒã ããšãã°ãåŒx = y *ãïŒ_ + zïŒã¯x = y *ãzã«å€æã§ããŸãã
ãã ããããã§ã¯ãã¹ãŠãæ確ã§ã¯ãããŸããã ããšãã°ãåé 笊å·å€æŽæŒç®ã-xãã¯ããŒãã0-xãããæ°å€ãæžç®ããäºé æŒç®ãšããŠèšè¿°ã§ããŸãã ãxãã®ä»£ããã«ã_ããå ¥åãããšããã®åŒã®æå³ã¯é²é³æ¹æ³ã«ãã£ãŠç°ãªããŸãã
z = y * (0 - _) // z = y*0, z = 0 z = y * (- _ ) // z = y
2çªç®ã®ã±ãŒã¹ã§ã¯ãã¿ãã«ã®äœçœ®ã«ã_ããçŸãããšãã_ããå«ãæ§æããªãŒããŒãããããªãŒã®ã«ãŒãïŒã€ãŸããåŒã®æåŸãéåžžã»ãã³ãã³ïŒãŸã§ã®ãã®äœçœ®ã®ãã¹ãŠã®èšç®ã¯ç Žæ£ãããŸãïŒã€ãŸããæ¬åœã§ãx @ _ == _ @ x == _ïŒã ã€ãŸããã¿ãã«ã®içªç®ã®èŠçŽ ã«å°ãªããšã1ã€ã®ã_ããååšãããšããããšã¯ãåŒå šäœã®ãã¹ãŠã®ã¿ãã«ã®içªç®ã®èŠçŽ ãå«ããã¹ãŠã®èšç®ãã¹ããŒãããããšãæå³ããŸãã
ã_ãã䜿çšããæ¹ãè¯ããšèšãã®ã¯é£ãããšæããŸãã ããã¯ãæ éã«æ€èšããå¿ èŠãããå¥ã®åé¡ã§ãã
å ¥ãåã«ãªã£ãã¿ãã«
èšèªã®ããã¥ã¡ã³ãã§ã¯ã»ãšãã©èæ ®ãããŠããªãå¥ã®èå³æ·±ãåŽé¢ã¯ãã¿ãã«ã®ãã¹ãã§ãã ãã¹ããããã¿ãã«ã®æãæçœã§å®éã«ååšããïŒCèšèªã§ãïŒã¢ããªã±ãŒã·ã§ã³ã¯ããã¹ããããæ§é ã®åæåã§ãã
struct Foo { int x, y, z; }; struct Bar { Foo f; int i, j; }; Bar b = { {10, 20}, 30 };
x, y, i, z j. ( , / ). , . .
bool. :
{x, y, z} == {1, 2, 3} // {false, true, false}
if, while .. bool! ?
- ( true)
- - ( - true).
. , , . : , , . , â .
? , ; ( - ) .
« » :
if( {x, y, z} == 0) { /*...*/ }
â « » ( ) - , .
, ! , ; , . â « » , ( â , , - â Evernote Wiznote ). , , â !