AS3:私有变量应具有_

问题描述 投票:5回答:4

我以为AS3现在已添加了私人功能。那为什么还要在私有变量前加上下划线呢?

private var _privVar:String;
actionscript-3 syntax
4个回答
10
投票

我将ActionScript 3当作遵循Adobe风格的通用规则。

除非您使用getter or setter,否则不要对私人变量使用下划线。例如:

private var _foo:String;
public function get foo():String
{
    return _foo;
}
public function set foo(value:String):void
{
    _foo = value;
}

此示例获取器/设置器有点用处,因为您可以将公共属性设置为执行相同的操作。仅在获取或设置属性时需要执行special操作时才使用getter或setter方法。即使那样,通常最好也只是创建一个公共方法。

还有另一点。我个人认为缩写变量或方法名不是一个好主意。因此,与其将我的变量命名为privVar,不如将其命名为privateVariable。如果您使用的是具有自动完成/建议功能的IDE(例如FlashBuilder(Flex Builder)或FlashDevelop),则尤其如此。

查看Adobe - coding conventions and best practices了解更多信息。


3
投票

您不必。它鼓励可读性,但绝不是强制性的。完全是个人喜好。


0
投票

使用下划线只是一种约定。而且我尽量避免使用它们,因为它会干扰我的智能。我习惯于在Flex Builder中输入obj.va并按ctrl-space来获取obj.variableName-在_variableName]中无法正常工作

顺便说一句,ActionScript的早期版本是否要求您在下划线之前给“私有”变量名添加前缀?


0
投票

我认为您不应缩写变量。它增强了可读性和自动完成功能。另一方面,在我的实践中,使用语法为function set someVar ( value ) : void的内置AS getter和setter并不是一件好事。它使重构变得非常困难,因为当不知道某个变量是一个setter或getter进入很多时间时。

© www.soinside.com 2019 - 2024. All rights reserved.