declare -a MY_ARRAY=()
请问阵列的声明以这种方式在bash将启动所有的数组元素为0?
如果没有,如何启动数组元素为0?
declare -a MY_ARRAY=()
请问阵列的声明以这种方式在bash将启动所有的数组元素为0?
如果没有,如何启动数组元素为0?
您的示例将声明/初始化空数组。
如果你想要初始化数组成员,你做这样的事情:
declare -a MY_ARRAY=(0 0 0 0) # this initializes an array with four members
如果你想初始化100个成员的数组,你可以这样做:
declare -a MY_ARRAY=( $(for i in {1..100}; do echo 0; done) )
请记住,在bash数组不固定长度(也不指数必须是连续的)。 因此,除非你知道电话号码应该是什么样,你不能初始化数组的所有成员。
击阵列不是固定长度的数组,所以不能预先初始化所有元素。 索引数组也没有疏,所以你不能真正使用默认值,你在想的方式。
但是,您可以使用关联数组与遗漏值的扩展。 例如:
declare -A foo
echo "${foo[bar]:-baz}"
这将返回“巴兹”任何丢失的钥匙。 作为替代方案,而不是仅仅返回默认值,实际上你可以设置一个丢失的钥匙。 例如:
echo "${foo[bar]:=baz}"
此备用调用将不只是返回“巴兹”,但它也将值存入数组供以后使用。 根据您的需求,这两种方法应该为你工作定义的使用情况。
是的,它启动一个空数组并分配它MY_ARRAY
。 你可以用这样的验证:
#!/bin/bash
declare -a MY_ARRAY=()
echo ${#MY_ARRAY} # this prints out the length of the array