变量声明中的冒号

Lex*_*Lex 2 unity-game-engine unityscript

我正在阅读一些Unity教程,并在其中一个示例脚本中遇到了这行代码.我熟悉javascript但我从未见过在声明除了对象文字之外的变量时使用的冒号.

var controller : CharacterController = GetComponent(CharacterController);

冒号在这一行做什么.

在脚本的末尾,还有另一行可能相关的代码

@script RequireComponent(CharacterController)

以下是来自unity的完整示例代码:

http://docs.unity3d.com/Documentation/ScriptReference/CharacterController.SimpleMove.html

-

我搜索了SO的重复项,但我找到的唯一一个就是这个:

Javascript:变量名中的冒号运算符是什么?

那家伙被嘲笑出了网站

JJJ*_*JJJ 7

Unity的JavaScript实际上不是JavaScript,而是ECMAScript的一个经过大量修改的变体.它也被称为UnityScript,它是一个更准确的名称.

变量声明中的冒号在Unity中用于指定变量的类型.在这种情况下controller,类型CharacterController又是一个类."实际"JavaScript中的语法无效.