如何删除 JavaScript 中的新数组?
How to delete new'd arrays in JavaScript?
我使用的是 Unity,所以这在技术上是 UnityScript,但我假设内置数组的工作方式相同。我有一个我创建的数组:
var room:roomInfo[,,];
room=new roomInfo[5,5,5];
删除语法是什么?简单地做 delete room;
或 delete room[,,];
似乎不起作用。删除后我需要这样做:
room=new roomInfo[10,10,10];
这似乎是一个非常简单的问题,但我对这些事情感到困惑而忘记了,而且我在 Google 上找不到任何东西(因为我不知道要搜索什么)。
Unity 脚本(如 JavaScript)使用垃圾收集自动释放未使用的内存。
如果没有变量指向对象,则释放元素。垃圾收集器知道 可能 持有指向您的数组的指针的任何变量,并确定是否有任何变量指向该数组。
如果没有变量指向您的数组,它将被标记为已释放。
When an object, string or array is created, the memory required to store it is allocated from a central pool called the heap. When the item is no longer in use, the memory it once occupied can be reclaimed and used for something else. [...] Nowadays, runtime systems like Unity’s Mono engine manage memory for you automatically.
http://docs.unity3d.com/Manual/UnderstandingAutomaticMemoryManagement.html
你不需要这样做,因为 UnityScript 已经为你做了 (Automatic Memory Management)。但如果您仍然喜欢自己的方式,请使用:
room = null;
在此之后,您可以将其初始化为:
room = new roomInfo[10,10,10];
所以完整的代码是:
room = null;
room = new roomInfo[10,10,10];
我使用的是 Unity,所以这在技术上是 UnityScript,但我假设内置数组的工作方式相同。我有一个我创建的数组:
var room:roomInfo[,,];
room=new roomInfo[5,5,5];
删除语法是什么?简单地做 delete room;
或 delete room[,,];
似乎不起作用。删除后我需要这样做:
room=new roomInfo[10,10,10];
这似乎是一个非常简单的问题,但我对这些事情感到困惑而忘记了,而且我在 Google 上找不到任何东西(因为我不知道要搜索什么)。
Unity 脚本(如 JavaScript)使用垃圾收集自动释放未使用的内存。
如果没有变量指向对象,则释放元素。垃圾收集器知道 可能 持有指向您的数组的指针的任何变量,并确定是否有任何变量指向该数组。
如果没有变量指向您的数组,它将被标记为已释放。
When an object, string or array is created, the memory required to store it is allocated from a central pool called the heap. When the item is no longer in use, the memory it once occupied can be reclaimed and used for something else. [...] Nowadays, runtime systems like Unity’s Mono engine manage memory for you automatically.
http://docs.unity3d.com/Manual/UnderstandingAutomaticMemoryManagement.html
你不需要这样做,因为 UnityScript 已经为你做了 (Automatic Memory Management)。但如果您仍然喜欢自己的方式,请使用:
room = null;
在此之后,您可以将其初始化为:
room = new roomInfo[10,10,10];
所以完整的代码是:
room = null;
room = new roomInfo[10,10,10];