2012-04-24 83 views
1

我主要在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); 
} 
+2

你會檢查該值並做任何事情嗎?這些數據將用於任何事情?如果不是,那麼沒有理由返回一個踢的值。 – Tejs 2012-04-24 15:19:51

回答

5

如果您在設置人員處返回this,則可以鏈接設置人員。我認爲CF10訪問器默認返回this以啓用鏈接。

我看過返回void的效率會比較高,但我不確定它是否是真的。我懷疑這種差異是顯而易見的。

+0

這是一個很好的考慮點。 – 2012-04-24 20:50:34

相關問題