Python/JS/Go/Java同步学习(第二十篇)四语言“列表遍历“对照表: 雷影“老板“发飙要求员工下班留校培训风暴(附源码/截图/参数表/避坑指南)
🤝 免骂声明:
- 本文
列表遍历
操作经本蜀黎实战整理,旨在提供快速参考指南📝- 因各语言版本迭代及不同系统
环境差异
,偶尔可能出现整理不全面之处,实属正常✅- 欢迎理性交流补充,喷子勿喷——毕竟你行你上来写,我敬你是条汉子,告诉我的你原文链接,我给你一键三连+转发👍!
- 若遇具体问题,请带图评论区留言,本蜀黎必拔码相助🤝
JS列表遍历深坑跟面试高频
和生产环境息息相关🚀
此篇看似简单实则大小深坑很多,且学且珍惜,避免踩雷💥
🌟【前言:字符串筑基·列表通脉】
「🧠 相信经过前18篇的『字符串苦修』,诸位已掌握:
-
切片如『柔拳点穴』般精准✅
-
格式化如『阴阳遁术』般灵活🚀
-
编码解码如『通灵契约』般通透🌈
-
今日起,我们将以字符串为『查克拉根基』💎
-
开启它的终极形态——列表、元组、字典、集合!💪
这便好比:
-
识百草(字符串)→ 配药方(列表)🌿
-
通经脉(基础操作)→ 运气血(嵌套结构)🍀
-
练体术(单数据类型)→ 结印忍术(多数据组合)✅
❌字符串基础扎实者,学列表如履平地;
跳过字符串
直接学列表
者,必遭『数据反噬』!
🌿【虎山CTO·药材使用警示】
- 🍀是药
三分毒
,代码亦如方! - ❌文中所涉药材均为技术隐喻,严禁实际配伍使用。
- 🙏真实用药请遵医嘱,乱用者——
- 系统崩坏事小,气血逆流事大!⚠️
📚 系列文章预告:
- 近期内容将聚焦编程基础构建,以
「原创知识矩阵」
形式系统梳理核心概念。每篇如连续剧集般环环相扣,建议按顺序学习——知识点一锅端
,疗效更持久!🔥
🧠【场景还原:忍者学校的遍历特训】
⚡ 雷影老板(拍桌怒吼):
- 「💢所有部门本周必须完成
数据巡检!
遍历不达标的中午给老子手写《火影链表心经》100遍!」
🦊 鸣人(抱头惨叫):
- 「伊鲁卡老师救命!for循环和
enumerate()
到底啥区别啊?!为什么Python能直接拿索引,Java非要让我get(i)
?!😫」
👨🏫 伊鲁卡(粉笔头精准命中):
-
鸣人!
遍历
就像吃一乐拉面——🍜 -
直接吃
(for-in)
→ 享受每一口原汤🍲 -
数着吃
(enumerate)
→ 知道第几口吃到叉烧🍥 -
带着条件吃
(if-in)
→ 避开你不爱的笋干!🎯
🐯 卡卡西(懒洋洋举《亲热天堂》补刀):
- 「啧...连
遍历
都搞不定,以后怎么跟我学雷切·多线程之术?」
🧘【扎马步·列表遍历心法】
-
遍历如抓药,方法不对容易君臣
错位
——🔁 -
直接遍历值
→ 按方抓药(快速但不知位置)🌿 -
枚举遍历
→ 带编号
抓药(精准定位每味)📍 -
条件遍历
→ 配伍禁忌
检测(安全高效)⚠️
📜【四语言列表遍历对比表】
遍历方式 | Python | JavaScript | Go | Java |
---|---|---|---|---|
直接遍历值 | for item in list : |
for (let item of list ) |
for _, item := range list |
for (String item : list ) |
枚举遍历 | for i, item in enumerate(list) : |
for (let [i, item] of list.entries() ) |
for i, item := range list |
for (int i=0; i<list.size() ; i++) |
条件检测 | if "x" in list : |
if (list.includes("x") ) |
需手动实现 contains() |
if (list.contains("x") ) |
索引从1开始 | enumerate(list, start=1) |
手动 i+1 | 手动 i+1 | 手动 i+1 |
✅核心差异解析:
-
Python:
enumerate()
封神,一键索引+值,支持起始偏移 🏆 -
JavaScript:
for...of+entries()
优雅但需解构,includes()
直白检测 🎨 -
Go:
range
统一天下,但无内置包含检查,需自写contains()
⚡ -
Java:传统
for-loop
扛把子,.contains()
省心但索引需手动+1 🥋
⚠️【避坑指南·遍历界的“药性相冲”】
🚫 Python:勿在遍历中修改列表长度(否则爆RuntimeError)
hd = ["山楂","麦芽"]
for i, item in enumerate(hd):
hd.pop(i) # 💥 边遍历边删除,直接炸炉!
💥 JavaScript:for-in遍历数组有风险(可能遍历原型链)
const hd = ["山楂","麦芽"];
for (let index in hd) {
console.log(index); // 可能输出非数字键!🕳️
}
// 安全用法:for-of 或 for(let i=0; ...)
⚡ Go:range返回的是副本(修改需用索引)
hd := []string{"山楂","麦芽"}
for _, item := range hd {
item = "雷影" // ❌ 无效!item是副本
}
// 正确:for i := range hd { hd[i] = "雷影" }
💣 Java:用增强for循环时不能删除元素(抛ConcurrentModificationException)
List<String> hd = new ArrayList<>(Arrays.asList("山楂","麦芽"));
for (String item : hd) {
hd.remove(item); // 💥 并发修改异常!
}
// 安全:用Iterator或普通for-loop
⚠️其他小坑提示:
🐍【Python的坑:遍历中修改列表】
hd = ["山楂", "麦芽", "神曲"]
for index, item in enumerate(hd):
if item == "麦芽":
hd.pop(index) # 💥 直接炸!RuntimeError
# 列表长度变了,enumerate会错乱
✅ 正确做法:
# 方法1:新建列表
new_hd = [item for item in hd if item != "麦芽"]
# 方法2:倒序遍历
for i in range(len(hd)-1, -1, -1):
if hd[i] == "麦芽":
hd.pop(i)
⚡【Go的坑:range返回的是副本】
hd := []string{"山楂", "麦芽"}
for _, item := range hd {
item = "雷影" // ❌ 无效!修改的是副本
}
fmt.Println(hd) // 还是["山楂", "麦芽"]
✅ 正确做法:
for i := range hd {
hd[i] = "雷影" // ✅ 通过索引修改
}
☕【Java的坑:增强for循环中删除】
List<String> hd = new ArrayList<>(Arrays.asList("山楂", "麦芽"));
for (String item : hd) {
if ("麦芽".equals(item)) {
hd.remove(item); // 💥 ConcurrentModificationException
}
}
✅ 正确做法:
// 方法1:用Iterator
Iterator<String> it = hd.iterator();
while (it.hasNext()) {
if ("麦芽".equals(it.next())) {
it.remove(); // ✅ 安全删除
}
}
// 方法2:用普通for循环
for (int i = 0; i < hd.size(); i++) {
if ("麦芽".equals(hd.get(i))) {
hd.remove(i);
i--; // 索引回退
}
}
语言 | 主要坑点 | 安全方案 | 比喻 |
---|---|---|---|
JavaScript | for-in 遍历原型链 |
用 for-of 或 forEach |
数药柜连说明书一起数 |
Python | 遍历中修改列表长度 | 新建列表或倒序遍历 | 边煎药边加药材→炸锅 |
Go | range 返回副本 |
通过索引修改原值 | 隔空点穴→力道不足 |
Java | 增强 for 中删除元素 |
用 Iterator 或普通 for |
拔罐时硬扯→伤皮肉 |
⚠️其他JS大坑提示:
🔥【特殊情况示例:原型链污染导致的异常遍历】
// 情况1:给Array原型添加方法(常见于第三方库或老代码)
Array.prototype.中药特性 = function() { return "性平味甘"; }
const hd = ["山楂", "麦芽"];
console.log("🚨 危险遍历 for-in:");
for (let index in hd) {
console.log(index); // 输出:0, 1, 中药特性 💥
}
console.log("✅ 安全遍历 for-of:");
for (let item of hd) {
console.log(item); // 输出:山楂, 麦芽 ✅
}
💥 输出结果,我遍历的是值,怎么成索引了?
🚨 危险遍历 for-in:
0
1
中药特性 // 💥 意外多出来的非数字键!
✅ 安全遍历 for-of:
山楂
麦芽
🛡️【企业级避坑指南】
// ✅ 安全做法1:永远用for-of遍历数组
for (const item of array) { /* 安全 */ }
// ✅ 安全做法2:用forEach
array.forEach((item, index) => { /* 安全 */ })
// ✅ 安全做法3:用普通for循环
for (let i = 0; i < array.length; i++) { /* 安全 */ }
// 🚫 危险做法:用for-in遍历数组
for (const index in array) { /* 可能踩坑 */ }
🧠【更隐蔽的死坑场景】
// 情况2:Object.defineProperty 定义不可枚举属性
Object.defineProperty(Array.prototype, "隐藏属性", {
value: "我是原型链上的幽灵",
enumerable: false // 不可枚举,但某些情况下仍可能被遍历
});
输出:
情况2:Object.defineProperty 定义不可枚举属性
0 山楂
1 麦芽
中药特性 [Function (anonymous)]
为什么设置了不可枚举限制,还在生效中❌
✅正确做法:
// 先清空原型链,再测试
delete Array.prototype.中药特性; // 🧹 先清理
// 只设置不可枚举属性
Object.defineProperty(Array.prototype, "隐藏属性", {
value: "我是原型链上的幽灵",
enumerable: false
});
const hd = ["山楂", "麦芽"];
console.log("🚨 测试不可枚举属性:");
for (let index in hd) {
console.log(index); // 应该只输出:0, 1 ✅
}
// 验证属性确实存在但不可枚举
console.log("隐藏属性" in hd); // true
console.log(hd.hasOwnProperty("隐藏属性")); // false
console.log(Object.keys(hd)); // ["0", "1"]
以下是本蜀黎整理
源码
和截图⏬
JS避坑源码和正确处理方法:
// 情况1:给Array原型添加方法(常见于第三方库或老代码)
Array.prototype.中药特性 = function() { return "性平味甘"; }
const hd = ["山楂", "麦芽"];
console.log("🚨 危险遍历 for-in:");
for (let index in hd) {
console.log(index); // 输出:0, 1, 中药特性 💥
}
console.log("✅ 安全遍历 for-of:");
for (let item of hd) {
console.log(item); // 输出:山楂, 麦芽 ✅
}
console.log("\n方法1,2,3输出")
// 方法1:使用 hasOwnProperty 过滤
for (let index in hd) {
if (hd.hasOwnProperty(index)) {
console.log(index, hd[index]); // 只输出自有属性
}
}
// 方法2:直接用 for-of(ES6推荐)
for (let item of hd) {
console.log(item);
}
// 方法3:传统 for 循环
for (let i = 0; i < hd.length; i++) {
console.log(i, hd[i]);
}
// 情况2:Object.defineProperty 定义不可枚举属性
Object.defineProperty(Array.prototype, "隐藏属性", {
value: "我是原型链上的幽灵",
enumerable: false // 不可枚举,但某些情况下仍可能被遍历
});
const hd1 = ["山楂", "麦芽"];
console.log("\n情况2:Object.defineProperty 定义不可枚举属性")
// 某些JS引擎或特殊模式下可能出现问题
for (let index in hd1) {
console.log(index, hd1[index]);
}
正确处理生效方法:
// 先清空原型链,再测试
delete Array.prototype.中药特性; // 🧹 先清理
// 只设置不可枚举属性
Object.defineProperty(Array.prototype, "隐藏属性", {
value: "我是原型链上的幽灵",
enumerable: false
});
const hd = ["山楂", "麦芽"];
console.log("🚨 测试不可枚举属性:");
for (let index in hd) {
console.log(index); // 应该只输出:0, 1 ✅
}
// 验证属性确实存在但不可枚举
console.log("隐藏属性" in hd); // true
console.log(hd.hasOwnProperty("隐藏属性")); // false
console.log(Object.keys(hd)); // ["0", "1"]
1.Python源码
⏬
# ==================== 财务遍历模块 ====================
# 带序号查账:给每个科目发工牌 👔
# 条件触发审计:发现异常金额立即锁账 🔒
# ⚠️ERP_冷溪虎山:遍历中断会导致对账失败
hd = ['山楂','神曲','麦芽','谷芽','鸡矢藤','鸡内金','蜘蛛香','沙棘'] #消化药 列表
for index,item in enumerate(hd): #索引默认从0开始
print(f"索引{index}-{item}")
print("🗝️🗝️🗝️🗝️🗝️🗝️🗝️🗝️🗝️")
for index,item in enumerate(hd,1): #索引从1开始
print(f"索引{index}-{item}")
print("🗝️🗝️🗝️🗝️🗝️🗝️🗝️🗝️🗝️")
if "山楂" in hd: #条件
for value in hd: #遍历值
print(value)
for i in range(len(hd)): #遍历索引
print(i)
def lengxi_tiger(chapter):
print(f"""
🍵【Python虎山宝宝专属提醒】🍵
老铁,你已经肝完 {chapter} 章啦!
快起来活动下颈椎,接杯热水~
你是我的心头肉,别累坏了!(๑•̀ㅂ•́)و✧
别让本座_冷溪tiger操心
""")
lengxi_tiger(10)
2.Nodejs源码
⏬
// ==================== 中药遍历模块 ====================
// 带编号验方:给每味药材发身份牌 🪪
// 君臣配伍检测:发现相克立即报警 ⚠️
// ⚠️虎山老药师:遍历错误会炸炉
const hd = ['山楂', '神曲', '麦芽', '谷芽', '鸡矢藤', '鸡内金', '蜘蛛香', '沙棘']; // 消化药列表
// 索引默认从0开始
console.log("🗝️🗝️🗝️🗝️🗝️🗝️🗝️🗝️");
for (const [index, item] of hd.entries()) {
console.log(`索引${index}-${item}`);
}
console.log("🗝️🗝️🗝️🗝️🗝️🗝️🗝️🗝️");
// 索引从1开始
for (let i = 0; i < hd.length; i++) {
console.log(`索引${i + 1}-${hd[i]}`);
}
console.log("🗝️🗝️🗝️🗝️🗝️🗝️🗝️🗝️");
if (hd.includes("山楂")) { // 条件判断
// 遍历值
for (const value of hd) {
console.log(value);
}
// 遍历索引
for (let i = 0; i < hd.length; i++) {
console.log(i);
}
}
function lengxiTiger(chapter) {
console.log(`%c
🥤【JS小可爱注意】🥤
你已经征服了 ${chapter} 个章节!
快站起来扭扭腰,眨眨眼~
本座_lengxi心疼你的肝啊!(っ◕‿◕)っ
`, "color: #FF69B4; font-size: 14px");
}
// 每10章调用
lengxiTiger(10);
3.Go源码
⏬
package main
import "fmt"
// ==================== 仓储遍历模块 ====================
// 带位置盘点:给每件货物贴坐标签 🏷️
// 临期检测:过期商品自动亮红灯 🚨
// ⚠️冷溪物流:遍历卡顿会堵死传送带
func main() {
hd := []string{"山楂", "神曲", "麦芽", "谷芽", "鸡矢藤", "鸡内金", "蜘蛛香", "沙棘"} // 消化药列表
// 索引默认从0开始
fmt.Println("🗝️🗝️🗝️🗝️🗝️🗝️🗝️🗝️")
for index, item := range hd {
fmt.Printf("索引%d-%s\n", index, item)
}
fmt.Println("🗝️🗝️🗝️🗝️🗝️🗝️🗝️🗝️")
// 索引从1开始
for i := 0; i < len(hd); i++ {
fmt.Printf("索引%d-%s\n", i+1, hd[i])
}
fmt.Println("🗝️🗝️🗝️🗝️🗝️🗝️🗝️🗝️")
if contains(hd, "山楂") { // 条件判断
// 遍历值
for _, value := range hd {
fmt.Println(value)
}
// 遍历索引
for i := 0; i < len(hd); i++ {
fmt.Println(i)
}
}
//防疲劳警示
HushanTiter10(10)
}
// Go 没有内置的 contains 函数,需要手动实现
func contains(slice []string, item string) bool {
for _, s := range slice {
if s == item {
return true
}
}
return false
}
func HushanTiter10(chapter int) {
fmt.Printf(`
🚨【Go语言战士注意】🚨
你已经持续战斗%d个章节!
--------------------------
执行以下命令:
$ 起身拉伸
$ 补充水分
$ 对镜子夸自己帅
--------------------------
你可是本项目的稀缺资源!
本座巴不得把我毕生所学全部传授你们_冷溪友好提示
`, chapter)
}
4.Java源码
⏬
import java.util.Arrays;
import java.util.List;
// ==================== ERP遍历模块 ====================
// 带索引巡检:给每笔业务打条形码 📊
// 异常流程拦截:触发条件立即暂停审批 ⏸️
// ⚠️ERP老兵_冷溪虎山:死循环会烧毁CPU
class main20 {
public static void main(String[] args) {
List<String> hd = Arrays.asList("山楂", "神曲", "麦芽", "谷芽", "鸡矢藤", "鸡内金", "蜘蛛香", "沙棘"); // 消化药列表
// 索引默认从0开始
System.out.println("🗝️🗝️🗝️🗝️🗝️🗝️🗝️🗝️");
for (int i = 0; i < hd.size(); i++) {
System.out.println("索引" + i + "-" + hd.get(i));
}
System.out.println("🗝️🗝️🗝️🗝️🗝️🗝️🗝️🗝️");
// 索引从1开始
for (int i = 0; i < hd.size(); i++) {
System.out.println("索引" + (i + 1) + "-" + hd.get(i));
}
System.out.println("🗝️🗝️🗝️🗝️🗝️🗝️🗝️🗝️");
if (hd.contains("山楂")) { // 条件判断
// 遍历值
for (String value : hd) {
System.out.println(value);
}
// 遍历索引
for (int i = 0; i < hd.size(); i++) {
System.out.println(i);
}
LengxiHushan20.remind(10);
}
}
}
class LengxiHushan20 {
public static void remind(int chapter) {
System.out.println(
"\n☕【Java老中医lengxitiger关爱提示】☕\n" +
"您已连续学习" + chapter + "个章节!\n" +
"建议:\n" +
"1. 做10个深蹲\n" +
"2. 远眺窗外6米外\n" +
"3. 对本虎山和自己说声'我超棒'\n" +
"注意:你的头发是本项目重要资产!\n"
);
}
}
源码分享结束⏫
📜【结局:遍历之道·全员通关】
⚡ 雷影老板(盯着整齐的遍历代码目瞪口呆):
- 「🏆这...这遍历比我的雷遁·查克拉模式还流畅!全员加班费翻倍——但必须学会
四语言遍历
,否则年终奖扣去修雷影办公室的墙!」
🌸 雏田(小声对鸣人说):
- 「鸣人...下次用
enumerate
时记得起始索引设为1
...就像药方里的君药必须排第一位...🥇」
🦊 鸣人(举着拉面碗蹦起来):
- 「哈哈哈!原来
遍历
就是数着叉烧吃面!我会了!佐助——来比谁先遍历完一乐菜单!🍜」
🐯 卡卡西(默默合上《亲热天堂》):
- 「嗯...总算有点样子了。下次教你们用
递归遍历
破解幻术·树结构数据...📙」
💥 佐助(写轮眼微闪):
- 「🎨哼...吊车尾的,等你能用Go手动实现
contains()
再说吧。」
🐯【虎山CTO的终极暴论】
-
遍历
的本质是数据经络巡行——🔎 -
直接遍历
如气血奔涌(简单但易失控)🔍 -
枚举遍历
如点穴精准(君臣有位,索引有序)🔮 -
条件遍历
如辨证施治(避禁忌,保平安)🎁
❌ 死记API不如参透思想:
所有语言遍历
皆为循环造化,不过语法结印不同罢了!
编程如用药,切忌胡乱循环——
该for-range
时别用for-i
,该枚举时别硬写下标+1!
🧪【附:四语言遍历心法口诀】
Python:
enumerate
起手式,索引值儿一对出🏆
JavaScript:
for-of
配entries
,解构是绝活🥇
Go:
range
横扫一切,但须自写contains
🥈
Java:
- 老牌
for-loop
稳,.contains()
省心神🥉
⚠️ 免责声明(附因果律警告)
本代码已注入中医玄学能量,请谨慎使用:
- ✅ 允许白嫖,但白嫖不点赞可能导致:
- 下次面试官恰好问到这个算法
- 键盘自动打出
//这里感谢冷溪虎山CTO
- 奶茶精准洒在刚写好的代码上
- ✅ 允许商用转发,但商用不注明出处可能触发:
- 系统类型混乱自动转型
- 数据库莫名存储"君臣佐使"字段
- ✅ 允许吐槽,但吐槽不带改进建议可能引发:
- 终生与老板N连鞭相爱相杀
🚀 现在立即行动:
- 点赞 → 吸收本篇算法精华+怪蜀黎脑洞思维
- 收藏 → 避免日后求医无门
- 关注 → 接收更多「中医+代码」脑洞
- 评论区留言 → 领取你的专属「算法药方」
⚠️ 友情提示:
- 本文内容过于硬核,建议点赞收藏转发三连,避免小编
心情波动
导致文章神秘消失
! - 毕竟小编今天可能爱答不理,明天可能高攀不起——
- 但你的收藏夹,永远是你最稳的知识备份!
🐶💻 (小声说:关我小黑屋?不存在的,备份早已同步GitHub/公众号/网盘!)
📚 往期爆文推荐,VIP轮换解锁:
📖Python/JS/Go/Java四语言同步学习,跨语言系列上线(别在纠结学什么单语言了)
🔍 没看过前传?快补课!
前1-18篇
请移步至"PY-JS-GO-JAVA基础进阶学习系列
"合集中阅读
- Python/JS/Go/Java同步学习(第十九篇)四语言“列表相关操作“对照表: 雷影“老板“发飙要求员工下班留校培训风暴(附源码/截图/参数表/避坑指南)
- Python/JS/Go/Java同步学习(第十八篇)四语言“常用时间类型格式化“对照表: 财务“小南“纸式格式化术处理凭证内容崩溃(附源码/截图/参数表/避坑指南)
- Python/JS/Go/Java同步学习(第十篇)四语言“字符串去空格“对照表: 雷影老板下达清除“数据污垢“指令(附源码/截图/参数表/避坑指南)
🌌平台算法容忍度测试系列上线,共三篇
✨跟大家创作方向获取流量息息相关,尽快留存以防下架
- 从数据视角分析:硬核技术文章与大众流量文章的平台算法反馈差异(附详细截图说明)
- Python批量重命名+时间修改!老板甩来100G雪山照(续)?附源码|职场生存智慧
- 编程算法“双链表“左右开弓!4语言实现《药典》字符串比对算法——附源码|截图|可白嫖| 防止抓错药 Python/JS/GO/JAVA(中医编程算法实战)HIS系统开发必备
🚀编程算法难懂?
✅编程算法中医药版上线,后续会更新:
- 惊呆!我把编程二叉树算法煮成“七宝美髯丹”,居然治好了我的算法恐惧症!(附4语言源码/整活土味海报|可白嫖|最小原型)
- CSDN唯一!用中医哲学重构数据结构:单链表秒变“药材灵气通道”(PY/JS/JAVA/GO四语言对照|最小原型|可白嫖|附截图)
- 编程算法“双链表“左右开弓!4语言实现《药典》字符串比对算法——附源码|截图|可白嫖| 防止抓错药 Python/JS/GO/JAVA(中医编程算法实战)HIS系统开发必备
Python工具箱系列上线,复制粘贴就能用✅✅:
-
设计狮别用PS切图了!Python像素炼丹术炸平UI流水线——老板的旅游照被我哈希去重后自动生成视频素材(附源码|可白嫖)
-
路径“如人体经络?Python/JS/Java/Go四语言“针灸术”——通不了算我输!附源码白嫖|职场生存指南|专治老板“文件找不到”咒术
✨碰到 其他卡顿问题| 其他数据抓取"正则"匹配问题? #### JetBrains 全家桶性能优化 ,点击以下链接👇👇直达其他爆款指南:
-
7.正则“|“表达式“?别再死记硬背了:17年非科班老炮 用正则速通秘籍,把你喂到饱!面试必备!(附记忆口诀->映射表)
-
8.程序员用国际正则征服全球文本!从ASCII到Unicode的玄学调试指南 面试高频!(附四大语言Python/JS/Java/Go支持对比+中医(HIS)映射表)
PS:按顺序看效果更佳!从 Java 到 Python,从 Web 到 C/C++,再到数据库——一套逻辑通吃 JetBrains 全家桶!
-
转发给团队里还在用默认配置的同事,救救他们的电脑和头发!"
-
“💡 不用东找西找——你要的「性能调优×数据抓取」爆款攻略,这里全都有!点击↑↑↑快速查漏补缺!”
----------------------------------------------------