【发布时间】:2009-07-12 10:48:40
【问题描述】:
假设您有各种基于数字或整数的变量,您希望将它们初始化为某个默认值。但是使用 0 可能会有问题,因为 0 是有意义的并且可能会产生副作用。
这方面有什么约定吗?
我最近一直在使用 Actionscript,并且有各种带有可选参数的值对象,因此对于大多数变量,我设置为 null,但对于数字或整数,我不能使用 null。一个例子:
package com.website.app.model.vo
{
public class MyValueObject
{
public function MyValueObject (
_id:String=null,
_amount:Number=0,
_isPurchased:Boolean=false
)
{ // Constructor
if( _id != null ) this.id = _id;
if( _amount != 0 ) this.amount = _amount;
if( _isPurchased != false ) this.isPurchased = _isPurchased;
}
public var id:String;
public var amount:Number;
public var isPurchased:Boolean;
}
}
困难在于,如果该值从未从其初始值更改,则在上述代码中使用 0 可能会出现问题。很容易检测变量是否具有空值。但是检测 0 可能并不那么容易,因为 0 可能是一个合法值。我想设置一个默认值以使参数可选,但我还想稍后在我的代码中检测该值是否从其默认值更改而不会产生难以调试的副作用。
我想我可以使用 -1 之类的值作为值。我想知道这种事情是否有任何众所周知的编码约定?我想这取决于变量和数据的性质。
这是我的第一个堆栈溢出问题。希望我的问题的要点是有道理的。
【问题讨论】:
标签: actionscript numbers conventions optional-parameters