Rubyã®é åïŒArrayïŒãåºæ¬ãã解説
ã»ãšãã©ã®ããã°ã©ãã³ã°èšèªã«åãã£ãŠããåºæ¬çãªèŠçŽ ã®ã²ãšã€ã«ãé åããããŸãã é åãšã¯ããŒã¿éåã®ã²ãšã€ã§ãå é ããé ã«å²ãæ¯ãããã€ã³ããã¯ã¹çªå·ã§èŠçŽ ã管çããããŒã¿æ§é ã§ãã ä»åã¯ãRubyã§é åãæ±ãããã®ã¯ã©ã¹ã§ãããArrayã¯ã©ã¹ãã®äœ¿ãæ¹ãå®éã®ã³ãŒãã亀ããªãã解説ããŠãããŸããã»ãšãã©ã®ããã°ã©ãã³ã°èšèªã«åãã£ãŠããåºæ¬çãªèŠçŽ ã®ã²ãšã€ã«ãé
åããããŸãã
é
åãšã¯ããŒã¿éåã®ã²ãšã€ã§ãå
é ããé ã«å²ãæ¯ãããã€ã³ããã¯ã¹çªå·ã§èŠçŽ ã管çããããŒã¿æ§é ã§ãã
ä»åã¯ãRubyã§é åãæ±ãæ¹æ³ãå®éã®ã³ãŒãã亀ããªãã解説ããŠãããŸãã
Rubyã«ãããé å (Array) ãšã¯

é
åãšã¯ãããŒã¿éåã®ã²ãšã€ã§ãã
ããã°ã©ã ãããŒã¿ãæ±ãã«ããããã²ãšãŸãšãŸãã®ããŒã¿ãããçš®ã®éåãšããŠç®¡çããããšããããŸããããŒã¿éåã«ã¯æ§ã
ãªåœ¢ã®ãã®ããããŸãããé
åã¯ããŒã¿éåã«ãããŠãã£ãšãåºæ¬çãªãã®ã§ãã
é åãšã¯
é
åã¯ãå
é ããé ã«æ¯ãããã€ã³ããã¯ã¹çªå·ãããšã«èŠçŽ ã管çããããŒã¿æ§é ã§ãã
å²ãæ¯ãããçªå·ãããšã«å€ãååŸããããæŽæ°ãããããããšãåºæ¥ãããŒã¿æ§é ã§ãããå€ã远å ããå Žåã¯åºæ¬çã«ã¯æ«å°Ÿã«æ°ããèŠçŽ ã远å ãããŸãã
Rubyã«ãããé å
Rubyã«ãããŠãé åã¯Arrayãšããã¯ã©ã¹ã§æ±ãããšãã§ããŸãã
Arrayã¯ã©ã¹ã¯ããŒã¿éåããŒãããå§ãŸãã€ã³ããã¯ã¹çªå·ã§ç®¡çããŸãã
ã€ã³ããã¯ã¹çªå·ããŒãããå§ãŸããããèŠçŽ ã3ã€ã®é
åããããšãããã
äžã€ç®ã®èŠçŽ ã®ã€ã³ããã¯ã¹çªå·ã¯ãŒãã
äºã€ç®ã®èŠçŽ ã®ã€ã³ããã¯ã¹çªå·ã¯1ã
äžã€ç®ã®èŠçŽ ã®ã€ã³ããã¯ã¹çªå·ã¯2ã«ãªãããšã«æ°ãä»ããŠãã ããã
Rubyã§é åãæ±ã

ããããå®éã®ã³ãŒãã亀ããªããRubyã®é
åã解説ããŠãããŸãã
é
åã¯ããã°ã©ãã³ã°ã«ãããŠé »ç¹ã«äœ¿çšããååšãªã®ã§ããã£ãããšæ±ããããã«ãªããŸãããã
é åãäœæãã
Rubyã§é
åãäœæããã«ã¯ãé
ååŒã䜿ããŸãã
é
ååŒã¯ [ èŠçŽ 1, èŠçŽ 2, èŠçŽ 3, ... ] ãšããèšæ³ã§æžãããšã§ããããã®é ã§èŠçŽ ãä¿æããArrayã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãäœæããŸãã
arr = [10, 20, 30, 40]
p arr # => å®è¡çµæïŒ[10, 20, 30, 40]
é åã«èŠçŽ ã远å ãã
äœææžã¿ã®é
åã«èŠçŽ ã远å ããããã®ã¡ãœãããšããŠãRubyã§ã¯Array.pushã¡ãœãããçšæãããŠããŸãã
pushã¡ãœãã㯠é
å.push(远å ããèŠçŽ ) ãšããèšæ³ã§å®è¡ããããšãã§ããŸãã
arr = [10, 20, 30, 40]
arr.push(50) # é
åarrã«èŠçŽ ïŒ50ïŒã远å ãã
p arr # => å®è¡çµæïŒ[10, 20, 30, 40, 50]
é åããèŠçŽ ãåé€ãã
å
ã»ã©é
åã«èŠçŽ ã远å ããã®ãšã¯éã«ãé
åããèŠçŽ ãåé€ããããã®ã¡ãœããããRubyã®Arrayã¯ã©ã¹ã«ã¯çšæãããŠããŸãã
Arrayã¯ã©ã¹ã«ã¯ãèŠçŽ ãåé€ããããã®ææ®µãšããŠæ§ã
ãªã¡ãœãããçšæãããŠããŸãããä»åã¯ãã®äžã§ãã£ãšãåºæ¬çãªArray.deleteã¡ãœãããArray.delete_atã¡ãœããã玹ä»ããŸãã
ã¡ãœããåïŒArray.deleteã¡ãœãã
- æžãæ¹ïŒé å.delete(åé€ããå€)
- æåïŒåŒæ°ã§æå®ãããåé€ããå€ããšå€ãäžèŽããèŠçŽ ãå šãŠåé€ããŸãã
- 泚æç¹ïŒå€ãäžèŽããèŠçŽ ããå šãŠãåé€ãããšããããšã«æ°ãä»ããŠãã ããã
ã¡ãœããåïŒArray.delete_atã¡ãœãã
- æžãæ¹ïŒé å.delete_at(åé€ããèŠçŽ ã®ã€ã³ããã¯ã¹çªå·)
- æåïŒåŒæ°ã§æå®ãããåé€ããèŠçŽ ã®ã€ã³ããã¯ã¹çªå·ãã®èŠçŽ ãåé€ããŸãã
- 泚æç¹ïŒåŒæ°ã«è² ã®æ°ãæå®ãããšãæ«å°Ÿããæ°ããäœçœ®ã®èŠçŽ ãåé€ããŸãïŒ ããšãã°åŒæ°ã« -1 ãæå®ãããšãé åã®æåŸå°Ÿã®èŠçŽ ãåé€ãããŸãïŒã
# Array.deleteã¡ãœãã
arr = [10, 20, 30, 10, 40, 50, 60]
arr.delete(10)
p arr # => å®è¡çµæïŒ[20, 30, 40, 50, 60]
# Array.delete_atã¡ãœãã
arr.delete_at(2)
p arr # => å®è¡çµæïŒ[20, 30, 50, 60]
é åãšé åãçµåãã
ãµãã€ã®ç°ãªãé åãã²ãšã€ã®é åã«çµåãããšããRubyã§ã¯äž»ã«ãµãã€ã®åºæ¬çãªæ¹æ³ããããŸãã ã²ãšã€ã¯ãã©ã¹æŒç®åã§é åãçµåããæ¹æ³ã ããã²ãšã€ã¯Array.concatã¡ãœããã䜿çšããæ¹æ³ã§ãã
ãã©ã¹æŒç®åãArray.concatã¡ãœãããã©ã¡ãããµãã€ã®é åãã²ãšã€ã«çµåãããã®ã§ããã以äžã®éãããããŸãã
ãã©ã¹æŒç®åã®å Žå
ãµãã€ã®é åãè¶³ããŠãç°ãªãæ°ããé åãäœæããïŒå ã®é åã¯å€æŽãããªãïŒ ãArray.concatã¡ãœããã®å Žå
Array.concatã¡ãœãããå®è¡ããåŽã®é åã«ãåŒæ°ã§æå®ããé åãç¶ãè¶³ãããïŒå ã®é åã倿ŽãããïŒ
# ãã©ã¹æŒç®åã§é
åãçµåãã
arr1 = [2, 4, 6, 8]
arr2 = [3, 6, 9, 12]
arr3 = arr1 + arr2
p arr3 # => å®è¡çµæïŒ[2, 4, 6, 8, 3, 6, 9, 12]
p arr1 # => å
ã®é
åã¯å€åããªãïŒ[2, 4, 6, 8]
p arr2 # => å
ã®é
åã¯å€åããªãïŒ[3, 6, 9, 12]
# Array.concatã¡ãœããã§é
åãçµåãã
arr1 = [2, 4, 6, 8]
arr2 = [3, 6, 9, 12]
arr1.concat(arr2)
p arr1 # => å
ã®é
åãå€åããïŒ[2, 4, 6, 8, 3, 6, 9, 12]
p arr2 # => 远å ããé
ååŽã¯å€åããªãïŒ[3, 6, 9, 12]
å ã®é åãå€åãããããªãå Žåã«ã¯ãã©ã¹æŒç®åã䜿çšããå€åããããå Žåã«ã¯Array.concatã¡ãœããã䜿ããšããã§ãããã æ¹æ³ããšã®ç¹åŸŽãããããç¶æ³ã«å¿ããé©åãªæ¹æ³ã®éžæãåºæ¥ãããã«ããŠãããŸãããã
ãŸãšã
Rubyã§é åãæ±ãæ¹æ³ããŸãšãããšã次ã®ããã«ãªããŸãã
- é åã®äœæïŒé ååŒã§Arrayã¯ã©ã¹ã®ãªããžã§ã¯ããäœæãã
- èŠçŽ ã®è¿œå ïŒArray.pushã¡ãœããã䜿çš
- äžèŽããå€ã®èŠçŽ ãåé€ïŒArray.deleteã¡ãœããã䜿çš
- èŠçŽ ã®ã€ã³ããã¯ã¹çªå·ãæå®ããŠåé€ïŒArray.delete_atã¡ãœããã䜿çš
- å ã®é åãå€åãããã«é åãçµåïŒãã©ã¹æŒç®åã䜿çš
- å ã®é åãå€åããã圢ã§é åãçµåïŒArray.concatã¡ãœããã䜿çš
ãã®ããã«ãé
åãæäœããããã®ã¡ãœããã«ã¯æ§ã
ãªãã®ãçšæãããŠããŸãã
åããããªåäœã®ãã®ã§ããArray.deleteã¡ãœãããšArray.delete_atã¡ãœããã®ããã«åé€å¯Ÿè±¡ãæå®ããæ¹æ³ãç°ãªããã®ããã£ããããã©ã¹æŒç®åãšArray.concatã¡ãœããã®ããã«èªèº«ãå€åãããããããªãããšããéãããã£ããããŸãã
Rubyã«ã¯ãã®ä»ã«ãã䌌ããããªåäœã ãå°ãã ãæ§è³ªã®ç°ãªãã¡ãœããããæ°å€ãååšããŸãã æ°ãã«ã¡ãœãããåŠç¿ãããšãã«ã¯ããããã£ãå°ãã®æ§è³ªã®ç°ãªãã«ãç®ãåããŠãããšãRubyã®çްãããªãšãããŸã§æ±ãããšãåºæ¥ãããã«ãªãã§ãããã
ãã®èšäºã®ããŒã¯ãŒãã«é¢ããå匷äŒã»ã€ãã³ããæ¢ã
TECH PLAYã§ã¯ãITãšã³ãžãã¢åãã®å匷äŒã»ã€ãã³ãæ å ±ãæäŸããŠããŸããèå³ã®ããæ¹ã¯ãã²ãåå ãã ããã
- ãRubyãã«é¢ããå匷äŒã»ã€ãã³ããæ¢ã
- ãããã°ã©ãã³ã°ãã«é¢ããå匷äŒã»ã€ãã³ããæ¢ã
- ãåå¿è ãã«é¢ããå匷äŒã»ã€ãã³ããæ¢ã













