[英]JSON length in javascript returns number of character instead of number of array elements
[英]Using .length returns incorrect number of elements
使用动态数组的.length
属性时,为什么在使用appender
后它返回不正确数量的元素?
如果我使用~=
语法,它将返回正确的长度。
码:
import std.stdio;
import std.array : appender;
void main()
{
//declaring a dynamic array
int [] arrayofNumbers;
//append an element using the ~= syntax
arrayofNumbers ~= 1;
arrayofNumbers ~= 2;
//print the array
writeln(arrayofNumbers);
//Using appender
auto appendNumber = appender(arrayofNumbers);
appendNumber.put(10);
writeln(appendNumber.data);
writeln(arrayofNumbers.length);
}
我正在阅读本文 ,我认为相关部分指出:
这样做的另一个结果是,长度不是数组属性,而是切片属性。 这意味着length字段不一定是数组的长度,而是切片的长度。 这会使使用该语言的新手感到困惑。
但是,这是指切片和动态数组。
根据文档, appender.data
返回一个托管数组。 因此,获取元素数量的正确方法是在返回的数组上调用.length
。
更正的代码:
int [] managedArray = appendNumber.data;
writeln(managedArray.length);
要么
writeln(appendNumber.data.length);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.