Kernel module<\/a> \u63d0\u4f9b\uff0c\u548c\u539f\u672c\u7684 Array class \u4e0d\u4e00\u6a23\u3002<\/p>\n\n\n\np Array([\"a\", \"b\"])\n# [\"a\", \"b\"]\np Array(1..5)\n# [1, 2, 3, 4, 5]\np Array(key: :value)\n# [[:key, :value]]\np Array(nil)\n# []\np Array(1)\n# [1]<\/code><\/pre>\n\n\n\n<\/span>2. Operstors<\/span><\/h2>\n\n\n\n\u5728 Array object \u4e2d\u4e5f\u53ef\u4ee5\u4f7f\u7528 operators \u4f86\u5c0d\u9663\u5217\u505a\u64cd\u4f5c\uff0c\u8981\u6ce8\u610f\u7684\u662f\uff0c\u5728 Array object \u4e2d\uff0c\u6240\u6709 operators \u90fd\u4e0d\u6703\u6539\u8b8a\u539f\u672c\u7684 Array object\uff01<\/span><\/p>\n\n\n\n<\/span>2.1 +<\/span><\/h3>\n\n\n\n\u6703\u76f4\u63a5\u5c07 + \u5f8c\u9762\u7684 Array object \u7684\u6240\u6709\u5143\u7d20\u52a0\u5230 + \u524d\u9762\u7684 Array object\uff1a<\/p>\n\n\n\n
arr1 = [1, 2, 3, 4]\narr2 = [5, 6]\n\np arr1 + arr2\n# [1, 2, 3, 4, 5, 6]\np arr1\n# [1, 2, 3, 4]<\/code><\/pre>\n\n\n\n<\/span>2.2 –<\/span><\/h3>\n\n\n\n\u5728 – \u524d\u9762\u7684 Array object \u4e2d\uff0c\u5982\u679c\u6709 – \u5f8c\u9762 Array object \u4e2d\u7684\u4efb\u4e00\u5143\u7d20\uff0c\u6703\u88ab\u522a\u9664\uff1a<\/p>\n\n\n\n
arr1 = [1, 1, 2, 2, 3, 3, 3, 3, 4, 5]\narr2 = [2, 3]\n\np arr1 - arr2\n# [1, 1, 4, 5]\np arr1\n# [1, 1, 2, 2, 3, 3, 3, 3, 4, 5]<\/code><\/pre>\n\n\n\n<\/span>2.3 *<\/span><\/h3>\n\n\n\n\u6703\u5c07 * \u524d\u9762\u7684 Array object \u91cd\u8907 * \u5f8c\u9762\u7684\u6b21\u6578\u5f8c\uff0c\u653e\u56de Array object\uff1a<\/p>\n\n\n\n
arr = [1, 3, 5]\n\np arr * 3\n# [1, 3, 5, 1, 3, 5, 1, 3, 5]\np arr\n# [1, 3, 5]<\/code><\/pre>\n\n\n\n<\/span>2.4 | (Union Sign)<\/span><\/h3>\n\n\n\nUnion \u7684\u4e2d\u6587\u662f\u806f\u96c6\uff0c\u6703\u6bd4\u8f03 | \u5de6\u53f3\u5169\u908a\u7684 Array object\uff0c\u5c07\u5169\u908a\u90fd\u51fa\u73fe\u904e\u7684\u5143\u7d20\u90fd\u53d6\u51fa\u4e26\u522a\u9664\u91cd\u8907\u9805\uff1a<\/p>\n\n\n\n
arr1 = [1, 1, 2, 3, 3]\narr2 = [3, 4, 4, 5]\n\np arr1 | arr2\n# same as p arr1.|(arr2)\n# [1, 2, 3, 4, 5]\n\narr3 = [4, 5, 6, 7]\n\np arr1 | arr2 | arr3\n# [1, 2, 3, 4, 5, 6, 7]\np arr1\n# [1, 1, 2, 3, 3]<\/code><\/pre>\n\n\n\n<\/span>2.5 & (Ampersand Sign)<\/span><\/h3>\n\n\n\n& \u662f\u4ea4\u96c6\uff0c\u53ea\u53d6\u51fa\u5169\u908a\u90fd\u51fa\u73fe\u904e\u7684\u5143\u7d20\uff1a<\/p>\n\n\n\n
arr1 = [1, 1, 2, 3, 3]\narr2 = [3, 4, 4, 5]\n\np arr1 & arr2\n# [3]\np arr1\n# [1, 1, 2, 3, 3]<\/code><\/pre>\n\n\n\n<\/span>2.6 Equal ==<\/span><\/h3>\n\n\n\n\u5728 Ruby \u4e2d\uff0c == \u53ea\u6703\u6bd4\u8f03\u5169\u908a\u7684 value\uff0c\u5373\u4fbf\u5169\u908a\u7684 Array object \u8a18\u61b6\u9ad4\u4f4d\u7f6e\u4e0d\u540c\uff0c\u53ea\u8981 value \u76f8\u540c\uff0c\u5c31\u6703\u56de\u50b3 true\uff1a<\/p>\n\n\n\n
\u5728 Ruby \u4e2d\uff0c=== \u662f == \u7684 Alias (\u5225\u540d)\uff0c\u5169\u8005\u7684\u529f\u80fd\u4e00\u6a21\u4e00\u6a23<\/pre>\n\n\n\narr1 = [1, 2, 3]\narr2 = [1, 2, 3]\n\n# object_id \u53ef\u4ee5\u7528\u4f86\u53d6\u5f97 object \u7684\u8a18\u61b6\u9ad4\u4f4d\u7f6e\np arr1.object_id\n# 60\np arr2.object_id\n# 80\np arr1 == arr2\n# true\np arr1 === arr2\n# true\n\n# \u53ef\u4ee5\u7528\u4ee5\u4e0b\u65b9\u6cd5\u5f9e\u8a18\u61b6\u9ad4\u4f4d\u7f6e\u53d6\u5f97 value\np ObjectSpace._id2ref(arr1.object_id)\n# [1, 2, 3]<\/code><\/pre>\n\n\n\n<\/span>2.7 Inequal !=<\/span><\/h3>\n\n\n\n\u548c == \u76f8\u53cd\uff1a<\/p>\n\n\n\n
arr1 = [1, 2, 3]\narr2 = [3, 2, 1]\n\np arr1 != arr2\n# true<\/code><\/pre>\n\n\n\n<\/span>2.8 <=><\/span><\/h3>\n\n\n\n\u6703\u5f9e\u5169\u908a\u7684\u7b2c\u4e00\u500b\u5143\u7d20\u958b\u59cb\u6bd4\u8f03\uff0c\u4e0d\u76f8\u7b49\u5c31\u5f80\u4e0b\u4e00\u500b index \u7e7c\u7e8c\u6bd4\u8f03\uff0c\u5169\u908a\u90fd\u76f8\u7b49\u5c31\u56de\u50b3 0\uff1a<\/p>\n\n\n\n
p [1, 2, 3] <=> [1, 2, 3]\n# 0\np [1, 2, 3] <=> [1, 2, 4]\n# -1\np [4, 2, 3] <=> [1, 2, 3]\n# 1\np [4, 2, 3] <=> [1, 2, 3, 4]\n# 1\np [1, 2, 3] <=> [1, 2, 3, 4]\n# -1<\/code><\/pre>\n\n\n\n<\/span>3. Array Instance Methods I – \u5c6c\u6027<\/span><\/h2>\n\n\n\n<\/span>3.1 Array length\/size<\/span><\/h3>\n\n\n\n.length \u7528\u4f86\u53d6\u5f97 Array object \u7684\u9577\u5ea6\uff0c\u548c .size \u4e00\u6a23\uff1a<\/p>\n\n\n\n
teams = [\"Jimmy\", \"Eric\", \"Sam\"]\n\np teams.length\n# 3\np teams.size\n# 3<\/code><\/pre>\n\n\n\n<\/span>3.2 Access Array Item<\/span><\/h3>\n\n\n\n\u53ef\u4ee5\u7528 [] \u4f86\u53d6\u5f97\u7b2c\u5e7e\u500b Array object \u7684\u5143\u7d20\uff1a<\/p>\n\n\n\n
- [0] \u4ee3\u8868\u7b2c\u4e00\u500b\u5143\u7d20<\/li>
- [-1] \u4ee3\u8868\u6700\u5f8c\u4e00\u500b\u5143\u7d20<\/li>
- \u5982\u679c\u8d85\u904e Array object \u7684\u9577\u5ea6\uff0c\u6703\u56de\u50b3 nil<\/li><\/ul>\n\n\n\n
teams = [\"Jimmy\", \"Eric\", \"Sam\"]\n\np teams[2]\np teams.[](2)\n# \"Sam\"\n\np teams[-2]\np teams.[](-2)\n# \"Eric\"\n\np teams[100]\n# nil<\/code><\/pre>\n\n\n\n<\/span>3.3 Array fetch<\/span><\/h3>\n\n\n\n.fetch \u548c\u7528 [] \u5b58\u53d6\u5143\u7d20\u985e\u4f3c\uff0c\u5dee\u5225\u5728\u65bc\u8d85\u904e Array object \u6642\uff0c\u5982\u679c\u6c92\u6709\u7d66\u7b2c\u4e8c\u500b argument \u6703\u6709 Error\uff0c\u6709\u7d66\u7b2c\u4e8c\u500b argument \u7684\u8a71\uff0c\u6703\u56de\u50b3\u7b2c\u4e8c\u500b argument\uff1a<\/p>\n\n\n\n
teams = [\"Jimmy\", \"Eric\", \"Sam\"]\n\np teams[2]\np teams.fetch(2)\n# \"Sam\"\n\np teams[-2]\np teams.fetch(-2)\n# \"Eric\"\n\np teams.fetch(100)\n# Error!\np teams.fetch(100, \"Unknown\")\n# \"Unknown\"<\/code><\/pre>\n\n\n\n<\/span>3.4 Array first last<\/span><\/h3>\n\n\n\n.first \u548c .last \u5206\u5225\u53ef\u4ee5\u5b58\u53d6\u524d\u5e7e\u500b\u548c\u6700\u5f8c\u5e7e\u500b Array object \u7684\u5143\u7d20\uff1a<\/p>\n\n\n\n
- \u6c92\u6709 argument \u6642\uff0c\u6703\u5206\u5225\u56de\u50b3\u7b2c\u4e00\u500b\u548c\u6700\u5f8c\u4e00\u500b\u5143\u7d20<\/li>
- \u6709 argument n \u6642\uff0c\u6703\u4ee5 Array object \u7684\u5f62\u5f0f\uff0c\u56de\u50b3\u524d n \u500b\u548c\u6700\u5f8c n \u500b\u5143\u7d20<\/li><\/ul>\n\n\n\n
arr = [1, 3, 5, 7, 9]\n\np arr.first\n# 1\np arr.first(1)\n# [1]\np arr.first(3)\n# [1, 3, 5]\n\np arr.last\n# 9\np arr.last(1)\n# [9]\np arr.last(3)\n# [5, 7, 9]<\/code><\/pre>\n\n\n\n<\/span>3.5 Array values_at<\/span><\/h3>\n\n\n\nvalues_at \u6703\u4ee5 Array object \u7684\u5f62\u5f0f\u56de\u50b3\u6307\u5b9a index \u7684\u5143\u7d20\uff1a<\/p>\n\n\n\n
arr = [1, 3, 5, 7, 9]\n\np arr.values_at(1, 3, 4)\n# \u53d6\u51fa index = 1, 3, 4 \u7684 items\n# [3, 7, 9]<\/code><\/pre>\n\n\n\n<\/span>3.6 Array index\/find_index<\/span><\/h3>\n\n\n\n.index \u548c .find_index \u7684\u529f\u80fd\u76f8\u540c\uff0c\u90fd\u662f\u627e\u5230\u9663\u5217\u4e2d\u7684\u67d0\u5143\u7d20 index \u4e26\u56de\u50b3\uff1a<\/p>\n\n\n\n
arr = [1, 3, 5, 7, 3]\n\np arr.index(3)\n# 1\np arr.find_index(3)\n# 1\np arr.index(10)\n# nil<\/code><\/pre>\n\n\n\n<\/span>3.7 Array max min<\/span><\/h3>\n\n\n\n.max \u548c .min \u6703\u56de\u50b3 Array object \u4e2d\u6700\u5927\u548c\u6700\u5c0f\u7684\u5143\u7d20\uff1a<\/p>\n\n\n\n
arr1 = [1, 3, 5, 7, 9]\narr2 = [\"Jimmy\", \"Eric\", \"Sam\"]\n\np arr1.max\n# 9\np arr1.min\n# 1\np arr2.max\n# \"Sam\"\np arr2.min\n# \"Eric\"<\/code><\/pre>\n\n\n\n<\/span>3.8 Array include?<\/span><\/h3>\n\n\n\n.include? \u7528\u4f86\u5224\u65b7\u9019\u500b Array object \u662f\u5426\u5305\u542b\u67d0\u5143\u7d20\uff1a<\/p>\n\n\n\n
arr = [1, 3, 5, 7, 3]\n\np arr.include?(3)\n# true\np arr.include?(10)\n# false<\/code><\/pre>\n\n\n\n<\/span>3.9 Array count<\/span><\/h3>\n\n\n\n.count \u6703\u8a08\u7b97\u9019\u500b\u5143\u7d20\u51fa\u73fe\u904e\u5e7e\u6b21\u4e26\u56de\u50b3\uff0c\u5982\u679c\u6c92\u6709 argument \u6642\uff0c\u6703\u56de\u50b3 Array object \u7684 length\uff1a<\/p>\n\n\n\n
arr = [1, 3, 5, 7, 9, 3]\n\np arr.count\n# 6\np arr.count(10)\n# 0\np arr.count(3)\n# 2<\/code><\/pre>\n\n\n\n<\/span>3.10 Array sample<\/span><\/h3>\n\n\n\n.sample \u7528\u4f86\u53d6\u5f97\u96a8\u6a5f\u500b Array item\uff0c\u6709\u7d66 argument \u6642\u6703\u56de\u50b3 Array object\uff1a<\/p>\n\n\n\n