File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -332,7 +332,7 @@ a b d e f
332332
333333上面例子中,删除了数组中的第三个元素,下标为2。
334334
335- 删除成员也可以将这个成员设为空值 。
335+ 将某个成员设为空值,可以从返回值中“隐藏”这个成员 。
336336
337337` ` ` bash
338338$ foo=(a b c d e f)
@@ -341,17 +341,30 @@ $ echo ${foo[@]}
341341a c d e f
342342` ` `
343343
344- 上面例子中,将数组的第二个成员设为空字符串,就删除了这个成员 。
344+ 上面例子中,将数组的第二个成员设为空字符串,数组的返回值中,这个成员就“隐藏”了 。
345345
346- 由于空值就是空字符串,所以下面这样写也可以,但是不建议这种写法。
346+ 注意,这里是“隐藏”,而不是删除,因为这个成员仍然存在,只是值变成了空值。
347+
348+ ` ` ` bash
349+ $ foo=(a b c d e f)
350+ $ foo[1]=''
351+ $ echo ${# foo[@]}
352+ 6
353+ $ echo ${! foo[@]}
354+ 0 1 2 3 4 5
355+ ` ` `
356+
357+ 上面代码中,第二个成员设为空值后,数组仍然包含6个成员。
358+
359+ 由于空值就是空字符串,所以下面这样写也有隐藏效果,但是不建议这种写法。
347360
348361` ` ` bash
349362$ foo[1]=
350363` ` `
351364
352- 上面的写法也相当于删除了数组的第二个成员 。
365+ 上面的写法也相当于“隐藏”了数组的第二个成员 。
353366
354- 直接将数组变量赋值为空字符串,相当于删除数组的第一个成员 。
367+ 直接将数组变量赋值为空字符串,相当于“隐藏”数组的第一个成员 。
355368
356369` ` ` bash
357370$ foo=(a b c d e f)
@@ -360,7 +373,7 @@ $ echo ${foo[@]}
360373b c d e f
361374` ` `
362375
363- 上面的写法相当于删除了数组的第一个成员 。
376+ 上面的写法相当于“隐藏”了数组的第一个成员 。
364377
365378` unset ArrayName` 可以清空整个数组。
366379
You can’t perform that action at this time.
0 commit comments