vararr =[1,2,3]; array_resize (arr,5); show_debug_message (arr);// [1, 2, 3, 0, 0] array_resize (arr,2); show_debug_message (arr);// [1, 2] 使得其他各种实用函数得以实现 。 array_push(ar...
vararr =[1,2,3];
array_resize (arr,5);
show_debug_message (arr);// [1, 2, 3, 0, 0]
array_resize (arr,2);
show_debug_message (arr);// [1, 2]
使得其他各种实用函数得以实现 。
array_push(array, ...values) 将一个或多个值添加到一个数组的末端 。
vararr =[1,2,3];
array_push (arr,4);
show_debug_message (arr);// [1, 2, 3, 4]
array_push (arr,5,6);
show_debug_message (arr);// [1, 2, 3, 4, 5, 6]
array_insert (array,index,...values)
array_insert(array, index, ...values) 在一个数组中的偏移处插入一个或多个值 。
vararr =[1,2,3];
array_insert (arr,1,"hi!");
show_debug_message (arr);// [1, "hi!", 2, 3]
array_pop(array)?value 移除数组中的最后一个元素 , 并将其返回 。
vararr =[1,2,3];
show_debug_message (array_pop(arr));// 3
show_debug_message (arr);// [1, 2]
array_delete (array,index,count)
array_delete(array, index, count) 删除数组中某一偏移处的元素
vararr =[1,2,3,4];
array_delete (arr,1,2);
show_debug_message (arr);// [1, 4]
array_sort (array,sorttype_or_function)
array_sort(array, sorttype_or_function) 对一个数组进行升序/降序排序(就像 ds_list_sort 一样) 。
vararr =[5,3,1,2,4];
array_sort (arr,true);
show_debug_message (arr);// [1, 2, 3, 4, 5]
或通过提供的“ comparator ”函数传递每个元素
varstrings =["plenty","1","three","two"];
array_sort (strings,function(a,b){
returnstring_length(a)-string_length(b);
});
show_debug_message(strings);// [ "1","two","three","plenty" ]_execute_ext
记得我们以前通过 switch 语句来根据某种情况 _execute 么?现在不需要了 。
vararr =[1,2,3,4];vartest =function{
varr ="";
for(vari =0;i <argument_count;i++){
if(i >0)r +=", ";
r +=string(argument[i]);
}
show_debug_message(r);
}
_execute_ext(test,arr);// `1, 2, 3, 4` - 整个 array
_execute_ext (test,arr,1);// `2, 3, 4` - 从偏移量开始
_execute_ext (test,arr,1,2);// `2, 3` - 偏移量和计数数据结构检查
增加了四个函数 , 用于检查 ds_list 和 ds_map 项是否为 map/list :
ds_list_is_map(id,index)
ds_list_is_list (id,index)
ds_map_is_map (id,key)
ds_map_is_list (id,key)
这可以验证你正在访问的东西(特别是对于 json_decode 输出)确实是一个 map/list
ds_map functions
增加了两个函数用于枚举 map 的键/值:
ds_map_values_to_array(id,?array)
ds_map_keys_to_array (id,?array)
这些对于迭代大型 map 来说是很方便的 , 特别是如果你希望在迭代过程中修改它们(这就是 ds_map_find_* 函数有未定义行为的地方) 。
类型检查功能
is_struct , is_method 已经被加入 , 用于检查一个值是否是一个结构或一个绑定的函数 , 但还有一个额外的功能--is_numeric 将检查一个值是否是任何数字类型( real , int32 , int64 , bool ) 。
突破性改变
需要注意的几件事:
2d array functions
由于 2d 数组函数现在已被废弃 , 它们翻译成如下 。
- array_length_1d(arr) ? array_length(arr)
- array_height_2d(arr) ? array_length(arr)
- array_length_2d(arr, ind) ? array_length(arr[ind])
你可以通过以下方式来解决这个问题
functionarray_height_2d_fixed(arr){
varn =array_length(arr);
if(n ==0)return0;// 空/不是一个数组
for(vari =0;i <n;i++)if(is_array(arr[i]))returnn;
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
