我主要在ColdFusion中工作,這是一種非編譯語言,但這是所有語言的一般問題。從函數返回值而不是返回void有什麼好處嗎?
我用getter/setters以及CRUD方法創建對象。這裏有一個例子:
<cffunction name="getPeriodStartDate" output="false" returntype="Numeric">
<cfreturn VARIABLES.PeriodStartDate />
</cffunction>
<cffunction name="setPeriodStartDate" output="false" returntype="Void">
<cfargument name="PeriodStartDate" type="Numeric" required="true" />
<cfset VARIABLES.PeriodStartDate = ARGUMENTS.PeriodStartDate />
</cffunction>
<cffunction name="getDollarAmount" output="false" returntype="Numeric">
<cfreturn VARIABLES.DollarAmount />
</cffunction>
<cffunction name="setDollarAmount" output="false" returntype="Void">
<cfargument name="DollarAmount" type="Numeric" required="true" />
<cfset VARIABLES.DollarAmount = ARGUMENTS.DollarAmount />
</cffunction>
<cffunction name="read" output="false" returntype="Query">
<!---
READ QUERY
--->
<cfreturn _qData />
</cffunction>
<cffunction name="create" output="false" returntype="Void">
<!---
INSERT QUERY
--->
</cffunction>
<cffunction name="update" output="false" returntype="Void">
<!---
UPDATE QUERY
--->
</cffunction>
<cffunction name="delete" output="false" returntype="Void">
<!---
DELETE QUERY
--->
</cffunction>
顯然get
方法和read()
方法將返回一個值。
但是,有其他方法返回一個值 - 可能是布爾值嗎?
我在的Flex/ActionScript中工作,記住,在大多數情況下,我需要從方法的變量,以防止代碼處理下一行返回一些值,並設置爲結果:
function myFunc() {
x = getSomething();
y = getSomethingElse(x);
}
你會檢查該值並做任何事情嗎?這些數據將用於任何事情?如果不是,那麼沒有理由返回一個踢的值。 – Tejs 2012-04-24 15:19:51