{"id":1560,"date":"2025-03-24T08:50:24","date_gmt":"2025-03-23T23:50:24","guid":{"rendered":"https:\/\/dexall.co.jp\/articles\/?p=1560"},"modified":"2025-03-24T08:50:24","modified_gmt":"2025-03-23T23:50:24","slug":"%e3%80%90ruby%e5%85%a5%e9%96%80%e3%80%91%e9%85%8d%e5%88%97%e3%81%b8%e3%81%ae%e8%a6%81%e7%b4%a0%e8%bf%bd%e5%8a%a0%e3%82%92%e5%ae%8c%e5%85%a8%e3%83%9e%e3%82%b9%e3%82%bf%e3%83%bc%ef%bc%817%e3%81%a4","status":"publish","type":"post","link":"https:\/\/dexall.co.jp\/articles\/?p=1560","title":{"rendered":"\u3010Ruby\u5165\u9580\u3011\u914d\u5217\u3078\u306e\u8981\u7d20\u8ffd\u52a0\u3092\u5b8c\u5168\u30de\u30b9\u30bf\u30fc\uff017\u3064\u306e\u57fa\u672c\u30c6\u30af\u30cb\u30c3\u30af\u3068\u4f7f\u3044\u5206\u3051"},"content":{"rendered":"\n<div class=\"toc\"><br \/>\n<b>Warning<\/b>:  Undefined array key \"is_admin\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>116<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_category_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>121<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>128<\/b><br \/>\n    <div id=\"toc_container\" class=\"sgb-toc--bullets js-smooth-scroll\" data-dialog-title=\"\u76ee\u6b21\">\n      <p class=\"toc_title\">\u76ee\u6b21 <\/p>\n      <ul class=\"toc_list\">  <li class=\"first\">    <a href=\"#i-0\">Ruby\u306e\u914d\u5217\u306b\u8981\u7d20\u3092\u8ffd\u52a0\u3059\u308b\u57fa\u672c\u7684\u306a\u65b9\u6cd5<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-1\">push\u30e1\u30bd\u30c3\u30c9\u3067\u914d\u5217\u306e\u672b\u5c3e\u306b\u8981\u7d20\u3092\u8ffd\u52a0\u3059\u308b<\/a>      <\/li>      <li>        <a href=\"#i-2\">&lt;&lt;\u6f14\u7b97\u5b50\u3092\u4f7f\u7528\u3057\u305f\u8981\u7d20\u306e\u8ffd\u52a0\u65b9\u6cd5<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-3\">unshift\u30e1\u30bd\u30c3\u30c9\u3067\u914d\u5217\u306e\u5148\u982d\u306b\u8981\u7d20\u3092\u8ffd\u52a0\u3059\u308b<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-4\">\u8907\u6570\u306e\u8981\u7d20\u3092\u4e00\u5ea6\u306b\u8ffd\u52a0\u3059\u308b\u30c6\u30af\u30cb\u30c3\u30af<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-5\">concat\u30e1\u30bd\u30c3\u30c9\u3067\u8907\u6570\u8981\u7d20\u3092\u52b9\u7387\u7684\u306b\u8ffd\u52a0<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-6\">\u914d\u5217\u306e\u7d50\u5408\u3068+=\u6f14\u7b97\u5b50\u306e\u6d3b\u7528\u65b9\u6cd5<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-7\">\u914d\u5217\u3078\u306e\u8981\u7d20\u8ffd\u52a0\u6642\u306e\u6ce8\u610f\u70b9\u3068\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-8\">\u7834\u58ca\u7684\u30e1\u30bd\u30c3\u30c9\u3068\u975e\u7834\u58ca\u7684\u30e1\u30bd\u30c3\u30c9\u306e\u4f7f\u3044\u5206\u3051<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-9\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u8003\u616e\u3057\u305f\u8ffd\u52a0\u65b9\u6cd5\u306e\u9078\u629e<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-10\">\u7279\u5b9a\u306e\u4f4d\u7f6e\u306b\u8981\u7d20\u3092\u8ffd\u52a0\u3059\u308b\u9ad8\u5ea6\u306a\u30c6\u30af\u30cb\u30c3\u30af<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-11\">insert\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u305f\u67d4\u8edf\u306a\u8981\u7d20\u306e\u8ffd\u52a0<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-12\">\u914d\u5217\u306e\u30b9\u30e9\u30a4\u30b9\u64cd\u4f5c\u306b\u3088\u308b\u8981\u7d20\u306e\u8ffd\u52a0<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-13\">\u5b9f\u8df5\u7684\u306a\u914d\u5217\u64cd\u4f5c\u30b7\u30fc\u30f3\u3067\u306e\u8981\u7d20\u8ffd\u52a0<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-14\">\u91cd\u8907\u3092\u907f\u3051\u305f\u8981\u7d20\u306e\u8ffd\u52a0\u65b9\u6cd5<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-15\">\u6761\u4ef6\u4ed8\u304d\u3067\u8981\u7d20\u3092\u8ffd\u52a0\u3059\u308b\u30c6\u30af\u30cb\u30c3\u30af<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-16\">\u914d\u5217\u3078\u306e\u8981\u7d20\u8ffd\u52a0\u306b\u95a2\u3059\u308b\u4e00\u822c\u7684\u306a\u30a8\u30e9\u30fc\u3068\u5bfe\u51e6\u6cd5<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-17\">\u3088\u304f\u3042\u308b\u578b\u95a2\u9023\u306e\u30a8\u30e9\u30fc\u3068\u89e3\u6c7a\u65b9\u6cd5<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-18\">\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u3092\u8003\u616e\u3057\u305f\u9069\u5207\u306a\u8ffd\u52a0\u65b9\u6cd5<\/a>      <\/li>    <\/ul>  <\/li>  <li class=\"last\">    <a href=\"#i-19\">\u914d\u5217\u64cd\u4f5c\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-20\">\u5927\u91cf\u30c7\u30fc\u30bf\u51e6\u7406\u6642\u306e\u52b9\u7387\u7684\u306a\u8981\u7d20\u8ffd\u52a0\u65b9\u6cd5<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-21\">\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u3092\u6291\u3048\u305f\u8ffd\u52a0\u51e6\u7406\u306e\u5b9f\u88c5<\/a>      <\/li>    <\/ul>  <\/li><\/ul>\n      <a href=\"#\" class=\"sgb-toc-button js-toc-button\" rel=\"nofollow\" data-open-dialog=\"true\"><i class=\"fa fa-list\"><\/i><span class=\"sgb-toc-button__text\">\u76ee\u6b21\u3078<\/span><\/a>\n    <\/div><\/div><h2 class=\"wp-block-heading\" id=\"i-0\">Ruby\u306e\u914d\u5217\u306b\u8981\u7d20\u3092\u8ffd\u52a0\u3059\u308b\u57fa\u672c\u7684\u306a\u65b9\u6cd5<\/h2>\n\n\n\n<p>\u914d\u5217\u306f\u3001Ruby\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306b\u304a\u3044\u3066\u6700\u3082\u57fa\u672c\u7684\u304b\u3064\u91cd\u8981\u306a\u30c7\u30fc\u30bf\u69cb\u9020\u306e1\u3064\u3067\u3059\u3002\u3053\u3053\u3067\u306f\u3001\u914d\u5217\u306b\u8981\u7d20\u3092\u8ffd\u52a0\u3059\u308b\u305f\u3081\u306e\u57fa\u672c\u7684\u306a\u65b9\u6cd5\u3092\u8a73\u3057\u304f\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-1\">push\u30e1\u30bd\u30c3\u30c9\u3067\u914d\u5217\u306e\u672b\u5c3e\u306b\u8981\u7d20\u3092\u8ffd\u52a0\u3059\u308b<\/h3>\n\n\n\n<p><code>push<\/code>\u30e1\u30bd\u30c3\u30c9\u306f\u3001\u914d\u5217\u306e\u672b\u5c3e\u306b\u8981\u7d20\u3092\u8ffd\u52a0\u3059\u308b\u6700\u3082\u4e00\u822c\u7684\u306a\u65b9\u6cd5\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\narray = [1, 2, 3]\narray.push(4)\nputs array  # \u51fa\u529b: [1, 2, 3, 4]\n\n# \u8907\u6570\u306e\u8981\u7d20\u3092\u4e00\u5ea6\u306b\u8ffd\u52a0\narray.push(5, 6)\nputs array  # \u51fa\u529b: [1, 2, 3, 4, 5, 6]\n\n# \u30e1\u30bd\u30c3\u30c9\u30c1\u30a7\u30fc\u30f3\u3067\u306e\u4f7f\u7528\narray.push(7).push(8)\nputs array  # \u51fa\u529b: [1, 2, 3, 4, 5, 6, 7, 8]<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-2\">&lt;&lt;\u6f14\u7b97\u5b50\u3092\u4f7f\u7528\u3057\u305f\u8981\u7d20\u306e\u8ffd\u52a0\u65b9\u6cd5<\/h3>\n\n\n\n<p><code>&lt;&lt;<\/code>\u6f14\u7b97\u5b50\uff08\u30b7\u30e7\u30d9\u30eb\u6f14\u7b97\u5b50\uff09\u306f\u3001<code>push<\/code>\u30e1\u30bd\u30c3\u30c9\u306e\u7c21\u7565\u8a18\u6cd5\u3068\u3057\u3066\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\narray = [1, 2, 3]\narray &lt;&lt; 4\nputs array  # \u51fa\u529b: [1, 2, 3, 4]\n\n# \u30e1\u30bd\u30c3\u30c9\u30c1\u30a7\u30fc\u30f3\u3067\u306e\u4f7f\u7528\narray &lt;&lt; 5 &lt;&lt; 6\nputs array  # \u51fa\u529b: [1, 2, 3, 4, 5, 6]\n\n# \u7570\u306a\u308b\u578b\u306e\u8981\u7d20\u3082\u8ffd\u52a0\u53ef\u80fd\narray &lt;&lt; \"string\" &lt;&lt; [7, 8]\nputs array  # \u51fa\u529b: [1, 2, 3, 4, 5, 6, \"string\", [7, 8]]<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-3\">unshift\u30e1\u30bd\u30c3\u30c9\u3067\u914d\u5217\u306e\u5148\u982d\u306b\u8981\u7d20\u3092\u8ffd\u52a0\u3059\u308b<\/h3>\n\n\n\n<p><code>unshift<\/code>\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u914d\u5217\u306e\u5148\u982d\u306b\u8981\u7d20\u3092\u8ffd\u52a0\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\narray = [1, 2, 3]\narray.unshift(0)\nputs array  # \u51fa\u529b: [0, 1, 2, 3]\n\n# \u8907\u6570\u306e\u8981\u7d20\u3092\u4e00\u5ea6\u306b\u8ffd\u52a0\narray.unshift(-2, -1)\nputs array  # \u51fa\u529b: [-2, -1, 0, 1, 2, 3]\n\n# \u623b\u308a\u5024\u306f\u66f4\u65b0\u3055\u308c\u305f\u914d\u5217\nresult = array.unshift(-3)\nputs result  # \u51fa\u529b: [-3, -2, -1, 0, 1, 2, 3]<\/pre>\n\n\n\n<p>\u305d\u308c\u305e\u308c\u306e\u30e1\u30bd\u30c3\u30c9\u306e\u7279\u5fb4\uff1a<\/p>\n\n\n<div id=\"id-b13fbba0-433f-48a6-8bc9-5b27ebadb35a\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30e1\u30bd\u30c3\u30c9<\/th><th>\u8ffd\u52a0\u4f4d\u7f6e<\/th><th>\u8907\u6570\u8981\u7d20\u5bfe\u5fdc<\/th><th>\u30e1\u30bd\u30c3\u30c9\u30c1\u30a7\u30fc\u30f3<\/th><th>\u5b9f\u884c\u901f\u5ea6<\/th><\/tr><\/thead><tbody><tr><td>push<\/td><td>\u672b\u5c3e<\/td><td>\u25cb<\/td><td>\u25cb<\/td><td>\u9ad8\u901f<\/td><\/tr><tr><td>&lt;&lt;<\/td><td>\u672b\u5c3e<\/td><td>\u00d7<\/td><td>\u25cb<\/td><td>\u9ad8\u901f<\/td><\/tr><tr><td>unshift<\/td><td>\u5148\u982d<\/td><td>\u25cb<\/td><td>\u25cb<\/td><td>\u8981\u7d20\u6570\u306b\u4f9d\u5b58<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>\u3053\u308c\u3089\u306e\u57fa\u672c\u7684\u306a\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u3044\u3053\u306a\u3059\u3053\u3068\u3067\u3001\u914d\u5217\u306e\u8981\u7d20\u8ffd\u52a0\u3092\u52b9\u7387\u7684\u306b\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u72b6\u6cc1\u306b\u5fdc\u3058\u3066\u9069\u5207\u306a\u30e1\u30bd\u30c3\u30c9\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-4\">\u8907\u6570\u306e\u8981\u7d20\u3092\u4e00\u5ea6\u306b\u8ffd\u52a0\u3059\u308b\u30c6\u30af\u30cb\u30c3\u30af<\/h2>\n\n\n\n<p>\u914d\u5217\u306b\u8907\u6570\u306e\u8981\u7d20\u3092\u52b9\u7387\u7684\u306b\u8ffd\u52a0\u3059\u308b\u65b9\u6cd5\u3092\u7406\u89e3\u3059\u308b\u3053\u3068\u306f\u3001\u52b9\u7387\u7684\u306a\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306b\u304a\u3044\u3066\u91cd\u8981\u3067\u3059\u3002\u3053\u3053\u3067\u306f\u3001\u8907\u6570\u8981\u7d20\u306e\u8ffd\u52a0\u306b\u7279\u5316\u3057\u305f\u30c6\u30af\u30cb\u30c3\u30af\u3092\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-5\">concat\u30e1\u30bd\u30c3\u30c9\u3067\u8907\u6570\u8981\u7d20\u3092\u52b9\u7387\u7684\u306b\u8ffd\u52a0<\/h3>\n\n\n\n<p><code>concat<\/code>\u30e1\u30bd\u30c3\u30c9\u306f\u3001\u5225\u306e\u914d\u5217\u306e\u5168\u8981\u7d20\u3092\u73fe\u5728\u306e\u914d\u5217\u306b\u8ffd\u52a0\u3057\u307e\u3059\u3002\u3053\u306e\u30e1\u30bd\u30c3\u30c9\u306f\u7279\u306b\u5927\u91cf\u306e\u30c7\u30fc\u30bf\u3092\u6271\u3046\u969b\u306b\u52b9\u7387\u7684\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\narray1 = [1, 2, 3]\narray2 = [4, 5, 6]\narray1.concat(array2)\nputs array1  # \u51fa\u529b: [1, 2, 3, 4, 5, 6]\n\n# \u8907\u6570\u306e\u914d\u5217\u3092\u9023\u7d9a\u3057\u3066\u8ffd\u52a0\narray1.concat([7, 8]).concat([9, 10])\nputs array1  # \u51fa\u529b: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n\n# \u914d\u5217\u4ee5\u5916\u306e\u5f15\u6570\u3067\u30a8\u30e9\u30fc\u3092\u9632\u3050\u4f8b\ndef safe_concat(array, elements)\n  array.concat(Array(elements))\nend\n\nnumbers = [1, 2, 3]\nsafe_concat(numbers, 4)        # \u5358\u4e00\u8981\u7d20\u3092\u914d\u5217\u3068\u3057\u3066\u8ffd\u52a0\nsafe_concat(numbers, [5, 6])   # \u914d\u5217\u3092\u305d\u306e\u307e\u307e\u8ffd\u52a0\nputs numbers  # \u51fa\u529b: [1, 2, 3, 4, 5, 6]<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-6\">\u914d\u5217\u306e\u7d50\u5408\u3068+=\u6f14\u7b97\u5b50\u306e\u6d3b\u7528\u65b9\u6cd5<\/h3>\n\n\n\n<p><code>+=<\/code>\u6f14\u7b97\u5b50\u3084\u914d\u5217\u306e\u7d50\u5408\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u3001\u8907\u6570\u306e\u8981\u7d20\u3092\u8ffd\u52a0\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002\u305f\u3060\u3057\u3001\u3053\u308c\u3089\u306f\u65b0\u3057\u3044\u914d\u5217\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u751f\u6210\u3059\u308b\u305f\u3081\u3001\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306b\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># +=\u6f14\u7b97\u5b50\u306b\u3088\u308b\u8ffd\u52a0\narray = [1, 2, 3]\narray += [4, 5]\nputs array  # \u51fa\u529b: [1, 2, 3, 4, 5]\n\n# +\u30e1\u30bd\u30c3\u30c9\u306b\u3088\u308b\u7d50\u5408\uff08\u975e\u7834\u58ca\u7684\uff09\noriginal = [1, 2, 3]\nnew_array = original + [4, 5]\nputs original   # \u51fa\u529b: [1, 2, 3]\nputs new_array  # \u51fa\u529b: [1, 2, 3, 4, 5]\n\n# \u8907\u6570\u914d\u5217\u306e\u52b9\u7387\u7684\u306a\u7d50\u5408\narrays = [[1, 2], [3, 4], [5, 6]]\ncombined = arrays.reduce([], :concat)\nputs combined  # \u51fa\u529b: [1, 2, 3, 4, 5, 6]<\/pre>\n\n\n\n<p>\u52b9\u7387\u7684\u306a\u914d\u5217\u7d50\u5408\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\uff1a<\/p>\n\n\n<div id=\"id-9b71067c-2a70-4ce3-897d-9e0fe442b834\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30e1\u30bd\u30c3\u30c9<\/th><th>\u30e1\u30e2\u30ea\u52b9\u7387<\/th><th>\u901f\u5ea6<\/th><th>\u5143\u306e\u914d\u5217\u306e\u5909\u66f4<\/th><th>\u7528\u9014<\/th><\/tr><\/thead><tbody><tr><td>concat<\/td><td>\u25ce<\/td><td>\u25ce<\/td><td>\u3042\u308a<\/td><td>\u5927\u91cf\u30c7\u30fc\u30bf\u306e\u8ffd\u52a0<\/td><\/tr><tr><td>+=<\/td><td>\u25b3<\/td><td>\u25cb<\/td><td>\u306a\u3057<\/td><td>\u5c0f\u898f\u6a21\u30c7\u30fc\u30bf\u306e\u7d50\u5408<\/td><\/tr><tr><td>+<\/td><td>\u25b3<\/td><td>\u25cb<\/td><td>\u306a\u3057<\/td><td>\u4e00\u6642\u7684\u306a\u7d50\u5408<\/td><\/tr><tr><td>reduce(:concat)<\/td><td>\u25cb<\/td><td>\u25cb<\/td><td>\u306a\u3057<\/td><td>\u8907\u6570\u914d\u5217\u306e\u7d50\u5408<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>\u5b9f\u88c5\u6642\u306e\u6ce8\u610f\u70b9\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30e1\u30e2\u30ea\u52b9\u7387\u3092\u91cd\u8996\u3059\u308b\u5834\u5408\u306f<code>concat<\/code>\u3092\u4f7f\u7528<\/li>\n\n\n\n<li>\u5143\u306e\u914d\u5217\u3092\u4fdd\u6301\u3057\u305f\u3044\u5834\u5408\u306f<code>+<\/code>\u3084<code>+=<\/code>\u3092\u4f7f\u7528<\/li>\n\n\n\n<li>\u5927\u91cf\u306e\u30c7\u30fc\u30bf\u3092\u6271\u3046\u5834\u5408\u306f<code>concat<\/code>\u304c\u6700\u9069<\/li>\n\n\n\n<li>\u914d\u5217\u306e\u7d50\u5408\u304c\u983b\u7e41\u306b\u767a\u751f\u3059\u308b\u5834\u5408\u306f\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306b\u6ce8\u610f<\/li>\n<\/ol>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u30c6\u30af\u30cb\u30c3\u30af\u3092\u9069\u5207\u306b\u4f7f\u3044\u5206\u3051\u308b\u3053\u3068\u3067\u3001\u52b9\u7387\u7684\u306a\u914d\u5217\u64cd\u4f5c\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-7\">\u914d\u5217\u3078\u306e\u8981\u7d20\u8ffd\u52a0\u6642\u306e\u6ce8\u610f\u70b9\u3068\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h2>\n\n\n\n<p>\u914d\u5217\u64cd\u4f5c\u3092\u52b9\u679c\u7684\u306b\u884c\u3046\u305f\u3081\u306b\u306f\u3001\u7834\u58ca\u7684\u30e1\u30bd\u30c3\u30c9\u3068\u975e\u7834\u58ca\u7684\u30e1\u30bd\u30c3\u30c9\u306e\u9055\u3044\u3092\u7406\u89e3\u3057\u3001\u9069\u5207\u306a\u4f7f\u3044\u5206\u3051\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-8\">\u7834\u58ca\u7684\u30e1\u30bd\u30c3\u30c9\u3068\u975e\u7834\u58ca\u7684\u30e1\u30bd\u30c3\u30c9\u306e\u4f7f\u3044\u5206\u3051<\/h3>\n\n\n\n<p>Ruby\u306e\u914d\u5217\u64cd\u4f5c\u30e1\u30bd\u30c3\u30c9\u306b\u306f\u3001\u5143\u306e\u914d\u5217\u3092\u5909\u66f4\u3059\u308b\u7834\u58ca\u7684\u30e1\u30bd\u30c3\u30c9\u3068\u3001\u65b0\u3057\u3044\u914d\u5217\u3092\u8fd4\u3059\u975e\u7834\u58ca\u7684\u30e1\u30bd\u30c3\u30c9\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u7834\u58ca\u7684\u30e1\u30bd\u30c3\u30c9\u306e\u4f8b\noriginal = [1, 2, 3]\nresult = original.push(4)  # original\u3082\u5909\u66f4\u3055\u308c\u308b\nputs original  # \u51fa\u529b: [1, 2, 3, 4]\nputs result    # \u51fa\u529b: [1, 2, 3, 4]\nputs original.object_id == result.object_id  # \u51fa\u529b: true\n\n# \u975e\u7834\u58ca\u7684\u30e1\u30bd\u30c3\u30c9\u306e\u4f8b\noriginal = [1, 2, 3]\nresult = original + [4]    # original\u306f\u5909\u66f4\u3055\u308c\u306a\u3044\nputs original  # \u51fa\u529b: [1, 2, 3]\nputs result    # \u51fa\u529b: [1, 2, 3, 4]\nputs original.object_id == result.object_id  # \u51fa\u529b: false\n\n# \u30e1\u30bd\u30c3\u30c9\u306e\u4f7f\u3044\u5206\u3051\u4f8b\ndef modify_array(array, element)\n  # \u7834\u58ca\u7684\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\n  array.push(element)\n  # \u975e\u7834\u58ca\u7684\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\n  # array + [element]\nend<\/pre>\n\n\n\n<p>\u7834\u58ca\u7684\u30e1\u30bd\u30c3\u30c9\u3068\u975e\u7834\u58ca\u7684\u30e1\u30bd\u30c3\u30c9\u306e\u6bd4\u8f03\uff1a<\/p>\n\n\n<div id=\"id-4eaa6f31-4bbf-4459-9f9b-239bb0c42c32\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30e1\u30bd\u30c3\u30c9<\/th><th>\u5143\u306e\u914d\u5217\u306e\u5909\u66f4<\/th><th>\u30e1\u30e2\u30ea\u52b9\u7387<\/th><th>\u7528\u9014<\/th><\/tr><\/thead><tbody><tr><td>push, &lt;&lt;, unshift<\/td><td>\u3042\u308a<\/td><td>\u826f\u3044<\/td><td>\u76f4\u63a5\u7684\u306a\u5909\u66f4\u304c\u5fc5\u8981\u306a\u5834\u5408<\/td><\/tr><tr><td>+, dup + push<\/td><td>\u306a\u3057<\/td><td>\u8981\u6ce8\u610f<\/td><td>\u5143\u306e\u30c7\u30fc\u30bf\u4fdd\u6301\u304c\u5fc5\u8981\u306a\u5834\u5408<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"i-9\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u8003\u616e\u3057\u305f\u8ffd\u52a0\u65b9\u6cd5\u306e\u9078\u629e<\/h3>\n\n\n\n<p>\u914d\u5217\u64cd\u4f5c\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306f\u3001\u8981\u7d20\u6570\u3084\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306b\u5927\u304d\u304f\u5f71\u97ff\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">require 'benchmark'\n\n# \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6bd4\u8f03\u4f8b\narray = (1..10000).to_a\nn = 100000\n\nBenchmark.bm(10) do |x|\n  x.report(\"push:\") { array.dup.push(n) }\n  x.report(\"&lt;&lt;:\") { array.dup &lt;&lt; n }\n  x.report(\"+=:\") { array.dup += [n] }\n  x.report(\"unshift:\") { array.dup.unshift(n) }\nend\n\n# \u30e1\u30e2\u30ea\u52b9\u7387\u3092\u8003\u616e\u3057\u305f\u5b9f\u88c5\u4f8b\ndef efficient_append(array, elements)\n  if elements.is_a?(Array)\n    array.concat(elements)  # \u914d\u5217\u306e\u5834\u5408\u306fconcat\u3092\u4f7f\u7528\n  else\n    array &lt;&lt; elements      # \u5358\u4e00\u8981\u7d20\u306e\u5834\u5408\u306f&lt;&lt;\u3092\u4f7f\u7528\n  end\nend<\/pre>\n\n\n\n<p>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306b\u5f71\u97ff\u3092\u4e0e\u3048\u308b\u8981\u56e0\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u914d\u5217\u306e\u30b5\u30a4\u30ba<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5927\u304d\u306a\u914d\u5217\u307b\u3069\u30e1\u30e2\u30ea\u5272\u308a\u5f53\u3066\u306e\u5f71\u97ff\u304c\u5927\u304d\u3044<\/li>\n\n\n\n<li>\u8981\u7d20\u6570\u304c\u591a\u3044\u307b\u3069\u64cd\u4f5c\u6642\u9593\u304c\u5897\u52a0<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u8ffd\u52a0\u4f4d\u7f6e<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u672b\u5c3e\u8ffd\u52a0\uff08push, &lt;&lt;\uff09\u306f\u9ad8\u901f<\/li>\n\n\n\n<li>\u5148\u982d\u8ffd\u52a0\uff08unshift\uff09\u306f\u8981\u7d20\u6570\u306b\u6bd4\u4f8b\u3057\u3066\u9045\u304f\u306a\u308b<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30e1\u30e2\u30ea\u7ba1\u7406<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u7834\u58ca\u7684\u30e1\u30bd\u30c3\u30c9\u306f\u30e1\u30e2\u30ea\u52b9\u7387\u304c\u826f\u3044<\/li>\n\n\n\n<li>\u975e\u7834\u58ca\u7684\u30e1\u30bd\u30c3\u30c9\u306f\u65b0\u3057\u3044\u914d\u5217\u3092\u4f5c\u6210\u3059\u308b\u305f\u3081\u3001\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u304c\u5897\u52a0<\/li>\n<\/ul>\n\n\n\n<p>\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u57fa\u672c\u65b9\u91dd<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u53ef\u80fd\u306a\u9650\u308a\u7834\u58ca\u7684\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528<\/li>\n\n\n\n<li>\u672b\u5c3e\u3078\u306e\u8ffd\u52a0\u3092\u512a\u5148<\/li>\n\n\n\n<li>\u5fc5\u8981\u306a\u5834\u5408\u306e\u307f\u975e\u7834\u58ca\u7684\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5b9f\u88c5\u4f8b<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u63a8\u5968\u3055\u308c\u308b\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3\ndef add_elements(array, elements)\n  case elements\n  when Array\n    array.concat(elements)  # \u914d\u5217\u306e\u5834\u5408\n  when nil\n    array  # nil\u306e\u5834\u5408\u306f\u4f55\u3082\u3057\u306a\u3044\n  else\n    array &lt;&lt; elements  # \u5358\u4e00\u8981\u7d20\u306e\u5834\u5408\n  end\nend\n\n# \u4f7f\u7528\u4f8b\nnumbers = [1, 2, 3]\nadd_elements(numbers, 4)        # [1, 2, 3, 4]\nadd_elements(numbers, [5, 6])   # [1, 2, 3, 4, 5, 6]<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u6ce8\u610f\u70b9\u3068\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\u3092\u610f\u8b58\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u52b9\u7387\u7684\u3067\u4fdd\u5b88\u6027\u306e\u9ad8\u3044\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-10\">\u7279\u5b9a\u306e\u4f4d\u7f6e\u306b\u8981\u7d20\u3092\u8ffd\u52a0\u3059\u308b\u9ad8\u5ea6\u306a\u30c6\u30af\u30cb\u30c3\u30af<\/h2>\n\n\n\n<p>\u914d\u5217\u306e\u4efb\u610f\u306e\u4f4d\u7f6e\u306b\u8981\u7d20\u3092\u8ffd\u52a0\u3059\u308b\u6a5f\u80fd\u306f\u3001\u3088\u308a\u8907\u96d1\u306a\u30c7\u30fc\u30bf\u64cd\u4f5c\u3092\u53ef\u80fd\u306b\u3057\u307e\u3059\u3002\u3053\u3053\u3067\u306f\u3001\u305d\u306e\u5b9f\u73fe\u65b9\u6cd5\u3068\u52b9\u7387\u7684\u306a\u5b9f\u88c5\u30c6\u30af\u30cb\u30c3\u30af\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-11\">insert\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u305f\u67d4\u8edf\u306a\u8981\u7d20\u306e\u8ffd\u52a0<\/h3>\n\n\n\n<p><code>insert<\/code>\u30e1\u30bd\u30c3\u30c9\u306f\u3001\u914d\u5217\u306e\u6307\u5b9a\u3057\u305f\u4f4d\u7f6e\u306b1\u3064\u307e\u305f\u306f\u8907\u6570\u306e\u8981\u7d20\u3092\u8ffd\u52a0\u3067\u304d\u308b\u5f37\u529b\u306a\u30e1\u30bd\u30c3\u30c9\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\narray = [1, 2, 3, 4, 5]\narray.insert(2, 'x')\nputs array  # \u51fa\u529b: [1, 2, 'x', 3, 4, 5]\n\n# \u8907\u6570\u8981\u7d20\u306e\u540c\u6642\u633f\u5165\narray = [1, 2, 3, 4, 5]\narray.insert(2, 'x', 'y', 'z')\nputs array  # \u51fa\u529b: [1, 2, 'x', 'y', 'z', 3, 4, 5]\n\n# \u8ca0\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u4f7f\u7528\u3057\u305f\u672b\u5c3e\u304b\u3089\u306e\u633f\u5165\narray = [1, 2, 3, 4, 5]\narray.insert(-2, 'x')  # \u672b\u5c3e\u304b\u30892\u756a\u76ee\u306e\u4f4d\u7f6e\u306b\u633f\u5165\nputs array  # \u51fa\u529b: [1, 2, 3, 4, 'x', 5]\n\n# insert\u30e1\u30bd\u30c3\u30c9\u306e\u30c1\u30a7\u30fc\u30f3\narray = [1, 2, 3, 4, 5]\narray.insert(1, 'a').insert(3, 'b')\nputs array  # \u51fa\u529b: [1, 'a', 2, 'b', 3, 4, 5]<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-12\">\u914d\u5217\u306e\u30b9\u30e9\u30a4\u30b9\u64cd\u4f5c\u306b\u3088\u308b\u8981\u7d20\u306e\u8ffd\u52a0<\/h3>\n\n\n\n<p>\u914d\u5217\u306e\u30b9\u30e9\u30a4\u30b9\u64cd\u4f5c\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u3088\u308a\u67d4\u8edf\u306a\u8981\u7d20\u306e\u8ffd\u52a0\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30b9\u30e9\u30a4\u30b9\u306b\u3088\u308b\u7f6e\u63db\u3092\u4f7f\u7528\u3057\u305f\u8981\u7d20\u306e\u8ffd\u52a0\narray = [1, 2, 3, 4, 5]\narray[2..2] = ['x', 'y', 'z']  # \u30a4\u30f3\u30c7\u30c3\u30af\u30b92\u306e\u4f4d\u7f6e\u306b\u8907\u6570\u8981\u7d20\u3092\u8ffd\u52a0\nputs array  # \u51fa\u529b: [1, 2, 'x', 'y', 'z', 3, 4, 5]\n\n# \u8981\u7d20\u306e\u524a\u9664\u3068\u8ffd\u52a0\u3092\u540c\u6642\u306b\u884c\u3046\narray = [1, 2, 3, 4, 5]\narray[1..3] = ['x', 'y']  # \u30a4\u30f3\u30c7\u30c3\u30af\u30b91\u304b\u30893\u307e\u3067\u3092\u65b0\u3057\u3044\u8981\u7d20\u3067\u7f6e\u63db\nputs array  # \u51fa\u529b: [1, 'x', 'y', 5]\n\n# \u7a7a\u306e\u7bc4\u56f2\u3092\u4f7f\u7528\u3057\u305f\u633f\u5165\narray = [1, 2, 3, 4, 5]\narray[2...2] = ['x', 'y']  # \u30a4\u30f3\u30c7\u30c3\u30af\u30b92\u306e\u4f4d\u7f6e\u306b\u8981\u7d20\u3092\u633f\u5165\uff08\u65e2\u5b58\u8981\u7d20\u306e\u524a\u9664\u306a\u3057\uff09\nputs array  # \u51fa\u529b: [1, 2, 'x', 'y', 3, 4, 5]\n\n# \u5b9f\u8df5\u7684\u306a\u4f7f\u7528\u4f8b\uff1a\u30bd\u30fc\u30c8\u6e08\u307f\u914d\u5217\u3078\u306e\u8981\u7d20\u633f\u5165\ndef insert_sorted(array, element)\n  insert_point = array.bsearch_index { |x| x &gt;= element } || array.length\n  array.insert(insert_point, element)\n  array\nend\n\nnumbers = [1, 3, 5, 7, 9]\ninsert_sorted(numbers, 4)\nputs numbers  # \u51fa\u529b: [1, 3, 4, 5, 7, 9]<\/pre>\n\n\n\n<p>\u7279\u5b9a\u4f4d\u7f6e\u3078\u306e\u8981\u7d20\u8ffd\u52a0\u306b\u304a\u3051\u308b\u6ce8\u610f\u70b9\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u306e\u7bc4\u56f2\u30c1\u30a7\u30c3\u30af<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">def safe_insert(array, index, element)\n  if index.abs &lt;= array.length\n    array.insert(index, element)\n  else\n    raise IndexError, \"\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u304c\u7bc4\u56f2\u5916\u3067\u3059: #{index}\"\n  end\nend\n\n# \u4f7f\u7528\u4f8b\nbegin\n  array = [1, 2, 3]\n  safe_insert(array, 5, 'x')\nrescue IndexError =&gt; e\n  puts e.message\nend<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u8003\u616e\u4e8b\u9805\uff1a<\/li>\n<\/ol>\n\n\n<div id=\"id-d036ca10-7b05-4e68-a330-2b164055ab8c\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u64cd\u4f5c<\/th><th>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9<\/th><th>\u30e1\u30e2\u30ea\u52b9\u7387<\/th><th>\u4f7f\u7528\u30b7\u30fc\u30f3<\/th><\/tr><\/thead><tbody><tr><td>insert<\/td><td>\u633f\u5165\u4f4d\u7f6e\u4ee5\u964d\u306e\u8981\u7d20\u6570\u306b\u4f9d\u5b58<\/td><td>\u826f\u597d<\/td><td>\u5358\u4e00\/\u5c11\u6570\u8981\u7d20\u306e\u633f\u5165<\/td><\/tr><tr><td>\u30b9\u30e9\u30a4\u30b9\u64cd\u4f5c<\/td><td>\u7f6e\u63db\u7bc4\u56f2\u306b\u4f9d\u5b58<\/td><td>\u826f\u597d<\/td><td>\u8907\u6570\u8981\u7d20\u306e\u7f6e\u63db\/\u633f\u5165<\/td><\/tr><tr><td>\u30bd\u30fc\u30c8\u6e08\u307f\u633f\u5165<\/td><td>O(log n) + \u633f\u5165\u30b3\u30b9\u30c8<\/td><td>\u826f\u597d<\/td><td>\u30bd\u30fc\u30c8\u9806\u3092\u7dad\u6301\u3057\u305f\u633f\u5165<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>\u5b9f\u88c5\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\uff1a<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u983b\u7e41\u306a\u633f\u5165\u304c\u5fc5\u8981\u306a\u5834\u5408\u306f\u3001\u9023\u7d50\u30ea\u30b9\u30c8\u306e\u4f7f\u7528\u3092\u691c\u8a0e<\/li>\n\n\n\n<li>\u5927\u91cf\u30c7\u30fc\u30bf\u306e\u5834\u5408\u3001\u30d0\u30c3\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u8003\u616e<\/li>\n\n\n\n<li>\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u306e\u59a5\u5f53\u6027\u3092\u5e38\u306b\u30c1\u30a7\u30c3\u30af<\/li>\n\n\n\n<li>\u53ef\u80fd\u306a\u9650\u308a\u672b\u5c3e\u3078\u306e\u8ffd\u52a0\u3092\u512a\u5148<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u9ad8\u5ea6\u306a\u30c6\u30af\u30cb\u30c3\u30af\u3092\u4f7f\u3044\u3053\u306a\u3059\u3053\u3068\u3067\u3001\u3088\u308a\u67d4\u8edf\u3067\u52b9\u7387\u7684\u306a\u914d\u5217\u64cd\u4f5c\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-13\">\u5b9f\u8df5\u7684\u306a\u914d\u5217\u64cd\u4f5c\u30b7\u30fc\u30f3\u3067\u306e\u8981\u7d20\u8ffd\u52a0<\/h2>\n\n\n\n<p>\u5b9f\u969b\u306e\u958b\u767a\u73fe\u5834\u3067\u306f\u3001\u5358\u7d14\u306a\u8981\u7d20\u8ffd\u52a0\u3060\u3051\u3067\u306a\u304f\u3001\u3088\u308a\u8907\u96d1\u306a\u6761\u4ef6\u3084\u8981\u4ef6\u306b\u57fa\u3065\u3044\u305f\u914d\u5217\u64cd\u4f5c\u304c\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-14\">\u91cd\u8907\u3092\u907f\u3051\u305f\u8981\u7d20\u306e\u8ffd\u52a0\u65b9\u6cd5<\/h3>\n\n\n\n<p>\u914d\u5217\u306b\u91cd\u8907\u3059\u308b\u8981\u7d20\u3092\u907f\u3051\u3066\u8ffd\u52a0\u3059\u308b\u65b9\u6cd5\u306f\u3001\u30c7\u30fc\u30bf\u306e\u6574\u5408\u6027\u3092\u4fdd\u3064\u4e0a\u3067\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u57fa\u672c\u7684\u306a\u91cd\u8907\u30c1\u30a7\u30c3\u30af\narray = [1, 2, 3]\nelement = 2\narray &lt;&lt; element unless array.include?(element)\nputs array  # \u51fa\u529b: [1, 2, 3]\n\n# Set \u3092\u4f7f\u7528\u3057\u305f\u52b9\u7387\u7684\u306a\u91cd\u8907\u6392\u9664\nrequire 'set'\n\nclass UniqueArray\n  def initialize\n    @elements = Set.new\n    @array = []\n  end\n\n  def add(element)\n    if @elements.add?(element)  # \u91cd\u8907\u3057\u3066\u3044\u306a\u3044\u5834\u5408\u306e\u307ftrue\n      @array &lt;&lt; element\n      true\n    else\n      false\n    end\n  end\n\n  def to_a\n    @array\n  end\nend\n\n# \u4f7f\u7528\u4f8b\nunique_array = UniqueArray.new\nunique_array.add(1)  # =&gt; true\nunique_array.add(2)  # =&gt; true\nunique_array.add(1)  # =&gt; false\nputs unique_array.to_a.inspect  # \u51fa\u529b: [1, 2]\n\n# \u8907\u6570\u8981\u7d20\u306e\u4e00\u62ec\u8ffd\u52a0\uff08\u91cd\u8907\u6392\u9664\uff09\ndef add_unique_elements(array, new_elements)\n  array.concat(new_elements - array)\nend\n\nnumbers = [1, 2, 3]\nadd_unique_elements(numbers, [2, 3, 4, 5])\nputs numbers  # \u51fa\u529b: [1, 2, 3, 4, 5]<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-15\">\u6761\u4ef6\u4ed8\u304d\u3067\u8981\u7d20\u3092\u8ffd\u52a0\u3059\u308b\u30c6\u30af\u30cb\u30c3\u30af<\/h3>\n\n\n\n<p>\u5b9f\u969b\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u3001\u7279\u5b9a\u306e\u6761\u4ef6\u306b\u57fa\u3065\u3044\u3066\u8981\u7d20\u3092\u8ffd\u52a0\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3053\u3068\u304c\u3088\u304f\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u6761\u4ef6\u306b\u57fa\u3065\u304f\u8981\u7d20\u8ffd\u52a0\nclass FilteredArray\n  def initialize(conditions = [])\n    @conditions = conditions\n    @elements = []\n  end\n\n  def add(element)\n    if @conditions.all? { |condition| condition.call(element) }\n      @elements &lt;&lt; element\n      true\n    else\n      false\n    end\n  end\n\n  def elements\n    @elements\n  end\nend\n\n# \u4f7f\u7528\u4f8b\nfiltered_array = FilteredArray.new([\n  -&gt;(x) { x.is_a?(Integer) },           # \u6574\u6570\u306e\u307f\n  -&gt;(x) { x &gt; 0 },                      # \u6b63\u306e\u6570\u306e\u307f\n  -&gt;(x) { x % 2 == 0 }                  # \u5076\u6570\u306e\u307f\n])\n\nfiltered_array.add(2)   # =&gt; true\nfiltered_array.add(-1)  # =&gt; false\nfiltered_array.add(3)   # =&gt; false\nfiltered_array.add(4)   # =&gt; true\n\nputs filtered_array.elements.inspect  # \u51fa\u529b: [2, 4]\n\n# \u5b9f\u8df5\u7684\u306a\u5b9f\u88c5\u4f8b\uff1a\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u4ed8\u304d\u8981\u7d20\u8ffd\u52a0\nclass ValidatedArray\n  def initialize\n    @elements = []\n  end\n\n  def add_with_validation(element)\n    return false unless valid?(element)\n\n    @elements &lt;&lt; element\n    true\n  rescue StandardError =&gt; e\n    puts \"\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f: #{e.message}\"\n    false\n  end\n\n  private\n\n  def valid?(element)\n    # \u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30eb\u30fc\u30eb\u3092\u3053\u3053\u306b\u5b9f\u88c5\n    element.is_a?(Numeric) &amp;&amp; element &gt; 0\n  end\nend\n\n# \u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u7684\u306a\u4e00\u62ec\u8ffd\u52a0\ndef bulk_add(array, elements, validator: -&gt;(x) { true })\n  temp_array = array.dup\n  elements.each do |element|\n    return false unless validator.call(element)\n    temp_array &lt;&lt; element\n  end\n  array.replace(temp_array)\n  true\nend\n\n# \u4f7f\u7528\u4f8b\nnumbers = [1, 2, 3]\nsuccess = bulk_add(numbers, [4, 5, 6]) { |x| x.is_a?(Integer) &amp;&amp; x &gt; 0 }\nputs \"\u8ffd\u52a0\u6210\u529f: #{success}\"  # \u51fa\u529b: \u8ffd\u52a0\u6210\u529f: true\nputs numbers.inspect        # \u51fa\u529b: [1, 2, 3, 4, 5, 6]<\/pre>\n\n\n\n<p>\u5b9f\u8df5\u7684\u306a\u5b9f\u88c5\u306e\u30dd\u30a4\u30f3\u30c8\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u9069\u5207\u306a\u4f8b\u5916\u51e6\u7406\u306e\u5b9f\u88c5<\/li>\n\n\n\n<li>\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u660e\u78ba\u5316<\/li>\n\n\n\n<li>\u30ed\u30fc\u30eb\u30d0\u30c3\u30af\u6a5f\u80fd\u306e\u5b9f\u88c5<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u52b9\u7387\u7684\u306a\u30c7\u30fc\u30bf\u69cb\u9020\u306e\u9078\u629e<\/li>\n\n\n\n<li>\u4e0d\u8981\u306a\u914d\u5217\u30b3\u30d4\u30fc\u306e\u56de\u907f<\/li>\n\n\n\n<li>\u30d0\u30c3\u30c1\u51e6\u7406\u306e\u6d3b\u7528<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u6027<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b3\u30fc\u30c9\u306e\u6a21\u5757\u5316<\/li>\n\n\n\n<li>\u30c6\u30b9\u30bf\u30d3\u30ea\u30c6\u30a3\u306e\u78ba\u4fdd<\/li>\n\n\n\n<li>\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u5145\u5b9f<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u5b9f\u8df5\u7684\u306a\u30c6\u30af\u30cb\u30c3\u30af\u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u5805\u7262\u3067\u4fdd\u5b88\u6027\u306e\u9ad8\u3044\u914d\u5217\u64cd\u4f5c\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-16\">\u914d\u5217\u3078\u306e\u8981\u7d20\u8ffd\u52a0\u306b\u95a2\u3059\u308b\u4e00\u822c\u7684\u306a\u30a8\u30e9\u30fc\u3068\u5bfe\u51e6\u6cd5<\/h2>\n\n\n\n<p>\u914d\u5217\u64cd\u4f5c\u6642\u306b\u767a\u751f\u3059\u308b\u53ef\u80fd\u6027\u306e\u3042\u308b\u30a8\u30e9\u30fc\u3092\u7406\u89e3\u3057\u3001\u9069\u5207\u306b\u5bfe\u51e6\u3059\u308b\u3053\u3068\u306f\u3001\u5805\u7262\u306a\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u4f5c\u6210\u3059\u308b\u4e0a\u3067\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-17\">\u3088\u304f\u3042\u308b\u578b\u95a2\u9023\u306e\u30a8\u30e9\u30fc\u3068\u89e3\u6c7a\u65b9\u6cd5<\/h3>\n\n\n\n<p>\u914d\u5217\u64cd\u4f5c\u3067\u6700\u3082\u4e00\u822c\u7684\u306a\u30a8\u30e9\u30fc\u306f\u578b\u95a2\u9023\u306e\u3082\u306e\u3067\u3059\u3002\u3053\u308c\u3089\u306e\u30a8\u30e9\u30fc\u3092\u9069\u5207\u306b\u51e6\u7406\u3059\u308b\u3053\u3068\u3067\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u4fe1\u983c\u6027\u304c\u5411\u4e0a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># TypeError \u306e\u51e6\u7406\u4f8b\ndef safe_array_append(array, element)\n  raise TypeError, \"\u7b2c1\u5f15\u6570\u306f\u914d\u5217\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\" unless array.is_a?(Array)\n  array &lt;&lt; element\nrescue TypeError =&gt; e\n  puts \"\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f: #{e.message}\"\n  array\nend\n\n# nil \u30c1\u30a7\u30c3\u30af\u3068\u578b\u5909\u63db\ndef normalize_and_append(array, element)\n  array ||= []  # nil \u306e\u5834\u5408\u306f\u65b0\u3057\u3044\u914d\u5217\u3092\u4f5c\u6210\n\n  case element\n  when Array\n    array.concat(element)\n  when nil\n    array  # nil \u306f\u7121\u8996\n  else\n    array &lt;&lt; element\n  end\nrescue StandardError =&gt; e\n  puts \"\u4e88\u671f\u305b\u306c\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f: #{e.message}\"\n  array\nend\n\n# \u4f7f\u7528\u4f8b\nresult = normalize_and_append(nil, [1, 2, 3])\nputs result.inspect  # \u51fa\u529b: [1, 2, 3]\n\nresult = normalize_and_append([], nil)\nputs result.inspect  # \u51fa\u529b: []<\/pre>\n\n\n\n<p>\u3088\u304f\u3042\u308b\u30a8\u30e9\u30fc\u3068\u305d\u306e\u5bfe\u51e6\u6cd5\uff1a<\/p>\n\n\n<div id=\"id-5b75a613-0850-4d46-b4e8-b030fd7ff743\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30a8\u30e9\u30fc\u7a2e\u985e<\/th><th>\u539f\u56e0<\/th><th>\u5bfe\u51e6\u65b9\u6cd5<\/th><\/tr><\/thead><tbody><tr><td>TypeError<\/td><td>\u914d\u5217\u4ee5\u5916\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3078\u306e\u64cd\u4f5c<\/td><td>\u578b\u30c1\u30a7\u30c3\u30af\u306e\u5b9f\u88c5<\/td><\/tr><tr><td>NoMethodError<\/td><td>nil\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3078\u306e\u64cd\u4f5c<\/td><td>nil\u30ac\u30fc\u30c9\u7bc0\u306e\u4f7f\u7528<\/td><\/tr><tr><td>ArgumentError<\/td><td>\u5f15\u6570\u306e\u6570\u304c\u4e0d\u6b63<\/td><td>\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3<\/td><\/tr><tr><td>IndexError<\/td><td>\u4e0d\u6b63\u306a\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u30a2\u30af\u30bb\u30b9<\/td><td>\u7bc4\u56f2\u30c1\u30a7\u30c3\u30af\u306e\u5b9f\u88c5<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"i-18\">\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u3092\u8003\u616e\u3057\u305f\u9069\u5207\u306a\u8ffd\u52a0\u65b9\u6cd5<\/h3>\n\n\n\n<p>\u30e1\u30e2\u30ea\u95a2\u9023\u306e\u30a8\u30e9\u30fc\u3092\u9632\u3050\u305f\u3081\u306b\u306f\u3001\u9069\u5207\u306a\u30e1\u30e2\u30ea\u7ba1\u7406\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30e1\u30e2\u30ea\u52b9\u7387\u3092\u8003\u616e\u3057\u305f\u5927\u91cf\u30c7\u30fc\u30bf\u51e6\u7406\nclass MemoryEfficientArray\n  def initialize(max_size = 1000)\n    @max_size = max_size\n    @array = []\n  end\n\n  def add(element)\n    if @array.size &gt;= @max_size\n      raise \"\u914d\u5217\u30b5\u30a4\u30ba\u304c\u4e0a\u9650\u3092\u8d85\u3048\u3066\u3044\u307e\u3059 (\u6700\u5927: #{@max_size})\"\n    end\n\n    @array &lt;&lt; element\n  end\n\n  def batch_add(elements)\n    available_space = @max_size - @array.size\n\n    if elements.size &gt; available_space\n      raise \"\u8ffd\u52a0\u8981\u7d20\u6570\u304c\u5229\u7528\u53ef\u80fd\u306a\u5bb9\u91cf\u3092\u8d85\u3048\u3066\u3044\u307e\u3059 (\u5229\u7528\u53ef\u80fd: #{available_space})\"\n    end\n\n    @array.concat(elements)\n  end\n\n  def to_a\n    @array.dup\n  end\nend\n\n# \u5927\u304d\u306a\u914d\u5217\u306e\u52b9\u7387\u7684\u306a\u51e6\u7406\ndef process_large_array(input_array, batch_size = 1000)\n  result = []\n  input_array.each_slice(batch_size) do |batch|\n    begin\n      # \u30d0\u30c3\u30c1\u51e6\u7406\n      processed = batch.map { |item| process_item(item) }\n      result.concat(processed)\n    rescue StandardError =&gt; e\n      puts \"\u30d0\u30c3\u30c1\u51e6\u7406\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f: #{e.message}\"\n      # \u30a8\u30e9\u30fc\u30ed\u30b0\u306e\u8a18\u9332\u3084\u30a8\u30e9\u30fc\u51e6\u7406\n    end\n  end\n  result\nend\n\nprivate\n\ndef process_item(item)\n  # \u30a2\u30a4\u30c6\u30e0\u306e\u51e6\u7406\u30ed\u30b8\u30c3\u30af\n  item * 2\nrescue StandardError =&gt; e\n  puts \"\u30a2\u30a4\u30c6\u30e0\u51e6\u7406\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f: #{e.message}\"\n  item  # \u30a8\u30e9\u30fc\u6642\u306f\u5143\u306e\u5024\u3092\u8fd4\u3059\nend<\/pre>\n\n\n\n<p>\u30a8\u30e9\u30fc\u51e6\u7406\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u9069\u5207\u306a\u4f8b\u5916\u30af\u30e9\u30b9\u306e\u5b9a\u7fa9<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class ArrayOperationError &lt; StandardError; end\nclass ArraySizeError &lt; ArrayOperationError; end\nclass ArrayTypeError &lt; ArrayOperationError; end\n\ndef add_with_custom_error(array, element)\n  raise ArrayTypeError, \"\u914d\u5217\u304c\u5fc5\u8981\u3067\u3059\" unless array.is_a?(Array)\n  raise ArraySizeError, \"\u914d\u5217\u304c\u6700\u5927\u30b5\u30a4\u30ba\u306b\u9054\u3057\u3066\u3044\u307e\u3059\" if array.size &gt;= 1000\n\n  array &lt;&lt; element\nrescue ArrayOperationError =&gt; e\n  puts \"\u64cd\u4f5c\u30a8\u30e9\u30fc: #{e.message}\"\n  array\nend<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>\u30a8\u30e9\u30fc\u30ea\u30ab\u30d0\u30ea\u30fc\u306e\u5b9f\u88c5<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">def resilient_array_operation(array)\n  retries = 0\n  max_retries = 3\n\n  begin\n    yield array\n  rescue StandardError =&gt; e\n    retries += 1\n    if retries &lt;= max_retries\n      puts \"\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\u30ea\u30c8\u30e9\u30a4 #{retries}\/#{max_retries}\"\n      retry\n    else\n      puts \"\u6700\u5927\u30ea\u30c8\u30e9\u30a4\u56de\u6570\u3092\u8d85\u3048\u307e\u3057\u305f: #{e.message}\"\n      array\n    end\n  end\nend\n\n# \u4f7f\u7528\u4f8b\nnumbers = [1, 2, 3]\nresilient_array_operation(numbers) do |arr|\n  arr &lt;&lt; 4\n  # \u4f55\u3089\u304b\u306e\u51e6\u7406\nend<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>\u30c7\u30d0\u30c3\u30b0\u3068\u30ed\u30b0\u8a18\u9332<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">require 'logger'\n\nclass ArrayOperationLogger\n  def initialize\n    @logger = Logger.new('array_operations.log')\n  end\n\n  def log_operation(operation, array, element)\n    @logger.info(\"\u64cd\u4f5c: #{operation}, \u914d\u5217: #{array.inspect}, \u8981\u7d20: #{element.inspect}\")\n  rescue StandardError =&gt; e\n    @logger.error(\"\u30ed\u30b0\u8a18\u9332\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f: #{e.message}\")\n  end\nend\n\n# \u4f7f\u7528\u4f8b\nlogger = ArrayOperationLogger.new\narray = [1, 2, 3]\nlogger.log_operation('\u8ffd\u52a0', array, 4)<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u30a8\u30e9\u30fc\u51e6\u7406\u30c6\u30af\u30cb\u30c3\u30af\u3092\u9069\u5207\u306b\u5b9f\u88c5\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u4fe1\u983c\u6027\u306e\u9ad8\u3044\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u4f5c\u6210\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-19\">\u914d\u5217\u64cd\u4f5c\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af<\/h2>\n\n\n\n<p>\u5927\u898f\u6a21\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3084\u5927\u91cf\u306e\u30c7\u30fc\u30bf\u3092\u6271\u3046\u5834\u5408\u3001\u914d\u5217\u64cd\u4f5c\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306f\u91cd\u8981\u306a\u8003\u616e\u4e8b\u9805\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-20\">\u5927\u91cf\u30c7\u30fc\u30bf\u51e6\u7406\u6642\u306e\u52b9\u7387\u7684\u306a\u8981\u7d20\u8ffd\u52a0\u65b9\u6cd5<\/h3>\n\n\n\n<p>\u5927\u91cf\u306e\u30c7\u30fc\u30bf\u3092\u52b9\u7387\u7684\u306b\u51e6\u7406\u3059\u308b\u305f\u3081\u306b\u306f\u3001\u9069\u5207\u306a\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3068\u5b9f\u88c5\u65b9\u6cd5\u306e\u9078\u629e\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">require 'benchmark'\nrequire 'memory_profiler'\n\n# \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6bd4\u8f03\u7528\u306e\u30d8\u30eb\u30d1\u30fc\u30e1\u30bd\u30c3\u30c9\ndef benchmark_array_operations(size)\n  array = []\n  elements = (1..size).to_a\n\n  Benchmark.bmbm do |x|\n    x.report(\"&lt;&lt;:\") do\n      temp = array.dup\n      elements.each { |e| temp &lt;&lt; e }\n    end\n\n    x.report(\"concat:\") do\n      temp = array.dup\n      temp.concat(elements)\n    end\n\n    x.report(\"push:\") do\n      temp = array.dup\n      elements.each { |e| temp.push(e) }\n    end\n\n    x.report(\"+=:\") do\n      temp = array.dup\n      temp += elements\n    end\n  end\nend\n\n# \u52b9\u7387\u7684\u306a\u5927\u91cf\u30c7\u30fc\u30bf\u51e6\u7406\u30af\u30e9\u30b9\nclass BulkArrayProcessor\n  def initialize(initial_capacity = 1000)\n    @array = Array.new(initial_capacity)\n    @size = 0\n  end\n\n  def add(element)\n    ensure_capacity\n    @array[@size] = element\n    @size += 1\n  end\n\n  def bulk_add(elements)\n    required_capacity = @size + elements.size\n    resize(required_capacity) if required_capacity &gt; @array.size\n    elements.each_with_index do |element, i|\n      @array[@size + i] = element\n    end\n    @size += elements.size\n  end\n\n  private\n\n  def ensure_capacity\n    resize(@array.size * 2) if @size &gt;= @array.size\n  end\n\n  def resize(new_capacity)\n    new_array = Array.new(new_capacity)\n    @array.each_with_index do |element, i|\n      new_array[i] = element\n    end\n    @array = new_array\n  end\nend<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-21\">\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u3092\u6291\u3048\u305f\u8ffd\u52a0\u51e6\u7406\u306e\u5b9f\u88c5<\/h3>\n\n\n\n<p>\u30e1\u30e2\u30ea\u52b9\u7387\u3092\u8003\u616e\u3057\u305f\u5b9f\u88c5\u306f\u3001\u7279\u306b\u9577\u6642\u9593\u7a3c\u50cd\u3059\u308b\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30e1\u30e2\u30ea\u52b9\u7387\u7684\u306a\u914d\u5217\u51e6\u7406\nclass MemoryEfficientProcessor\n  def initialize(max_batch_size = 1000)\n    @max_batch_size = max_batch_size\n  end\n\n  def process_large_dataset(input_enumerator)\n    buffer = []\n\n    input_enumerator.each do |item|\n      buffer &lt;&lt; item\n\n      if buffer.size &gt;= @max_batch_size\n        process_batch(buffer)\n        buffer.clear  # \u30e1\u30e2\u30ea\u89e3\u653e\n      end\n    end\n\n    process_batch(buffer) unless buffer.empty?\n  end\n\n  private\n\n  def process_batch(batch)\n    # \u30d0\u30c3\u30c1\u51e6\u7406\u306e\u5b9f\u88c5\n    batch.each { |item| yield item if block_given? }\n  end\nend\n\n# \u4f7f\u7528\u4f8b\nprocessor = MemoryEfficientProcessor.new(100)\nlarge_dataset = (1..10000).to_enum\n\nprocessor.process_large_dataset(large_dataset) do |item|\n  # \u5404\u30a2\u30a4\u30c6\u30e0\u306e\u51e6\u7406\n  puts item if item % 1000 == 0\nend<\/pre>\n\n\n\n<p>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u4e8b\u524d\u5272\u308a\u5f53\u3066\u3068\u30ad\u30e3\u30d1\u30b7\u30c6\u30a3\u7ba1\u7406<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class PreallocatedArray\n  def initialize(initial_capacity = 100)\n    @array = Array.new(initial_capacity)\n    @size = 0\n  end\n\n  def add(element)\n    grow if @size == @array.size\n    @array[@size] = element\n    @size += 1\n  end\n\n  private\n\n  def grow\n    new_capacity = @array.size * 2\n    new_array = Array.new(new_capacity)\n    @array.each_with_index do |e, i|\n      new_array[i] = e\n    end\n    @array = new_array\n  end\nend<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>\u30d0\u30c3\u30c1\u51e6\u7406\u306e\u6d3b\u7528<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">def efficient_batch_processing(input_array)\n  result = []\n  temp_buffer = []\n  buffer_size = 1000\n\n  input_array.each do |element|\n    temp_buffer &lt;&lt; element\n\n    if temp_buffer.size &gt;= buffer_size\n      process_and_append(temp_buffer, result)\n      temp_buffer.clear\n    end\n  end\n\n  process_and_append(temp_buffer, result) unless temp_buffer.empty?\n  result\nend\n\nprivate\n\ndef process_and_append(buffer, result)\n  processed = buffer.map { |item| process_item(item) }\n  result.concat(processed)\nend<\/pre>\n\n\n\n<p>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6bd4\u8f03\u8868\uff1a<\/p>\n\n\n<div id=\"id-c42cf946-80fe-48d3-b814-3daec322422f\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u64cd\u4f5c\u65b9\u6cd5<\/th><th>\u6642\u9593\u8907\u96d1\u5ea6<\/th><th>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf<\/th><th>\u9069\u7528\u30b7\u30fc\u30f3<\/th><\/tr><\/thead><tbody><tr><td>\u9010\u6b21\u8ffd\u52a0<\/td><td>O(1)*<\/td><td>\u4f4e<\/td><td>\u5c0f\u898f\u6a21\u30c7\u30fc\u30bf<\/td><\/tr><tr><td>\u30d0\u30c3\u30c1\u51e6\u7406<\/td><td>O(n)<\/td><td>\u4e2d<\/td><td>\u4e2d\u898f\u6a21\u30c7\u30fc\u30bf<\/td><\/tr><tr><td>\u4e8b\u524d\u5272\u308a\u5f53\u3066<\/td><td>O(1)*<\/td><td>\u4e2d\u301c\u9ad8<\/td><td>\u5927\u898f\u6a21\u30c7\u30fc\u30bf<\/td><\/tr><tr><td>\u52d5\u7684\u62e1\u5f35<\/td><td>O(n)<\/td><td>\u53ef\u5909<\/td><td>\u4e0d\u5b9a\u30b5\u30a4\u30ba<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>*\u511f\u5374\u8a08\u7b97\u91cf<\/p>\n\n\n\n<p>\u6700\u9069\u5316\u306e\u30dd\u30a4\u30f3\u30c8\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30e1\u30e2\u30ea\u7ba1\u7406<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u9069\u5207\u306a\u521d\u671f\u30b5\u30a4\u30ba\u306e\u8a2d\u5b9a<\/li>\n\n\n\n<li>\u52b9\u7387\u7684\u306a\u30e1\u30e2\u30ea\u89e3\u653e<\/li>\n\n\n\n<li>\u4e0d\u8981\u306a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u751f\u6210\u306e\u56de\u907f<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306e\u9078\u629e<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30c7\u30fc\u30bf\u30b5\u30a4\u30ba\u306b\u5fdc\u3058\u305f\u65b9\u6cd5\u306e\u9078\u629e<\/li>\n\n\n\n<li>\u30d0\u30c3\u30c1\u51e6\u7406\u306e\u6d3b\u7528<\/li>\n\n\n\n<li>\u9069\u5207\u306a\u30d0\u30c3\u30d5\u30a1\u30b5\u30a4\u30ba\u306e\u8a2d\u5b9a<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30b7\u30b9\u30c6\u30e0\u30ea\u30bd\u30fc\u30b9\u306e\u8003\u616e<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GC\uff08\u30ac\u30d9\u30fc\u30b8\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\uff09\u3078\u306e\u5f71\u97ff<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u65ad\u7247\u5316\u306e\u9632\u6b62<\/li>\n\n\n\n<li>CPU\u4f7f\u7528\u7387\u306e\u6700\u9069\u5316<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af\u3092\u9069\u5207\u306b\u9069\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u52b9\u7387\u7684\u306a\u914d\u5217\u64cd\u4f5c\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Warning: Undefined array key &#8220;is_admin&#8221; in \/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/ &#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":{"0":"post-1560","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ruby","7":"nothumb"},"_links":{"self":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/1560","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1560"}],"version-history":[{"count":1,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/1560\/revisions"}],"predecessor-version":[{"id":1561,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/1560\/revisions\/1561"}],"wp:attachment":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1560"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1560"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}