1. 程式人生 > >Delphi函式和過程

Delphi函式和過程

     過程無返回值,函式有返回值。

     procedure MyProc(m,n : Integer; o : String; p : Single = 2.5; q : String = 'Delphi');

     如上例所示,過程宣告和定義中,多個引數是用分號隔開的,但在呼叫時是用逗號隔開的 。eg:

     MyProc(3, 4, 'me', 3.14);

     上例中省略了最後一個引數,當指定一個引數的預設值後,其後的所有引數都必須指定一個預設值,如上面的宣告中的引數 p 和 q 。或者說,應該把所有指定預設值的引數放在引數列表的後面。

     Delphi函式的值有兩種方式返回,第一:把值賦給函式名;第二:把值賦給Result。而Result實際上是函式名的一個別名,同時它也是每一個函式內部自動隱含的區域性變數,其型別跟函式的返回型別相同。

     一般情況下,使用Result方式返回函式值,而不用函式名來返回。因為在呼叫一個無引數的函式時只寫函式名就可以呼叫,不像C語言等其它語言一樣即使無引數也要在函式名後加上括號,這樣很容易不小心就寫成遞迴呼叫,進入死迴圈。另外,有時候在coding過程中可能需要修改已經定下的函式名,此時如果用Result返回函式值的話就不需要再修改函式體了。

function Add:Integer;
var
  i:Integer;
begin
  Result := 0;
  for i := 1 to 100 do
    Add := Add + i;    //死迴圈
  ShowMessage(IntToStr(Result););
end;

     需要注意的是,Delphi和其他一些語言不同,它的函式在返回值的時候並不中止函式本身,它總會執行到函式的最後一條語句。如果需要提前退出,可以用 Exit;語句。

相關推薦

Delphi函式過程

     過程無返回值,函式有返回值。      procedure MyProc(m,n : Integer; o : String; p : Single = 2.5; q : String = 'Delphi');      如上例所示,過程宣告和定義中,多個引數是

Sql Developer 除錯函式過程 Sql window Command window Program window Test window 區別

plsql的命令(command)視窗與sql視窗有什麼區別 2017年09月07日 09:22:55 236004 閱讀數:10597 標籤: command視窗與sql視窗 更多 個人分類: Oracle資料庫工具使用 版權

《Oracle PL/SQL開發指南》學習筆記31——原始碼除錯——函式過程(第四部分,物件表函式,result_cache子句)

  建立一個物件表函式有三個步驟: 1. 定義記錄結構為物件型別 2. 定義集合 3. 定義一個函式來展示如何從PL/SQL上下文向SQL上下文返回集合   1. 建立基本的SQL使用者自定義型別(UDT) 注意:發現竟然不能使用distinct關

《Oracle PL/SQL開發指南》學習筆記31——原始碼除錯——函式過程(第三部分,並行查詢及管道函式

  1. PARALLEL_ENABLE子句(啟用並行查詢以提高效能) 首次接觸,學習一下: PARALLEL_ENABLE lets you designate a function to support parallel query capabilities. This

《Oracle PL/SQL開發指南》學習筆記31——原始碼除錯——函式過程(第二部分,函式

  1. 命名塊函式原型 [{EDITIONALBE | NONEDITIONALBE}] FUNCTION function_name ( parameter [IN][OUT] [NOCOPY] sql_datatype | plsql_datatype [, parame

《Oracle PL/SQL開發指南》學習筆記31——原始碼除錯——函式過程(第一部分,函式呼叫表示法)

這節很基礎,卻發現了Oracle的可愛之處,一個函式呼叫就提供了這麼多選項,學起來真夠累的!   1. 在PL/SQL中呼叫函式表示法  SQL> /* Formatted on 2018/12/4 0:08:00 (QP5 v5.256.13226.355

學會使用MySQL中自定義函式儲存過程

一、快速瞭解什麼是儲存過程和函式?   儲存過程和函式是事先經過編譯並存儲在資料庫中的一段 SQL 語句的集合,呼叫儲存過程 和函式可以簡化應用開發人員的很多工作,減少資料在資料庫和應用伺服器之間的傳輸,對 於提高資料處理的效率是有好處的。   在對儲存過程或函式進行操作時,需要

大資料之scala(一) --- 安裝scala,簡單語法介紹,條件表示式,輸入輸出,迴圈,函式過程,lazy ,異常,陣列

一、安裝和執行Scala解釋程式 --------------------------------------------- 1.下載scala-2.11.7.msi 2.管理員執行--安裝 3.進入scala/bin,找到scala.bat,管理員執行,進入scala命

函式儲存過程聯合主鍵

建立批量插入資料 第一個命令是DELIMITER //,它與儲存過程語法無關。 DELIMITER語句將標準分隔符 - 分號(;)更改為://。 在這種情況下,分隔符從分號(;)更改為雙斜槓//。為什麼我們必須更改分隔符? 因為我們想將儲存過程作為整體傳遞給伺服器,而不是讓mysql工具一次解釋每個語句。

sqlserver 只有函式擴充套件儲存過程才能從函式內部執行

一個SQLServer的自定義函式中呼叫一個自定義的儲存過程,執行此函式後發出如下提示:“只有函式和擴充套件儲存過程才能從函式內部執行"。原因:函式只能使用簡單的sql語句,邏輯控制語句,複雜一點的儲存過程是不能呼叫的,在函式裡也不能使用execute sp_executesql 或者execute 。解決方

學習Pytbon第九天,函式1 過程引數

函式def func1():定義函式 '''testing1'''#函式的說明 print("in the func1")#定義過程 return 0 #得到函式的執行結果。還是程式的結束過程就是沒有返回值的'函式' def func2(): '''testing2''' print('in the fun

【C++】C++函式過載過程中的二義性型別轉換

例如函式形參的型別是int,呼叫函式時卻將short型別的資料交給了它,編譯器就需要先將short型別轉換為int型別才能匹配成功。 注意,型別提升和型別轉換不是一碼事!型別提升是積極的,是為了更加高效地利用計算機硬體,不會導致資料丟失或精度降低;而型別轉換是不得已

資料庫系統學習筆記--函式儲存過程

目錄   函式 自定義函式 基本語法 控制語句 儲存過程 自定義函式和儲存過程的區別 函式 函式的意義就在於完成特定的功能,寫一份函式,可以在多個語句中多次使用,簡化程式設計工作。 資料庫系統中的函式大致也可以分為內建函式和自定義函式(UDF

sql語句---儲存過程函式觸發器

儲存過程、函式和觸發器的原理: 實際上都是使用Transact-SQL語言編寫的程式。儲存過程和函式需要顯式呼叫才能執行,而觸發器則在滿足指定條件時自動執行。 1、儲存過程 1.1 定義 儲存過程是Transact-SQL語句的預編譯集合,這些語句在一個名稱下儲

MySQL自定義函式儲存過程的區別:

  自定義函式和儲存過程的區別: 1)一般來說,儲存過程實現的功能要複雜一點,而函式的實現的功能針對性比較強。儲存過程,功能強大,可以執行包括修改表等一系列資料庫操作;使用者定義函式不能用於執行一組修改全域性資料庫狀態的操作。 2)對於儲存過程來說可以返回引數,如記錄集,而函式只能返回值或者表物件。函式只能

資料庫中函式儲存過程的區別總結

資料庫的使用中,經常用到函式和儲存過程。都是為了實現某個sql功能,那麼這兩者有區別嗎?都適用哪些場景?總結如下 總的來說函式限制比較多,如不能用臨時表,只能用表變數等,而儲存過程的限制相對就比較少。 1.儲存過程實現的功能要複雜一點,而函式的實現的功能針對性比

Oracle 函式儲存過程的區別聯絡 總結版

  oracle儲存過程與函式的區別 2017年08月15日 22:49:38 冷月葬花魂iiii 閱讀數:7800更多 個人分類: oracle 定義: 儲存過程(Stored Procedure )是一組為了完成特定功能的SQL 語句集

C++函式呼叫過程內建函式詳解

       上圖表示 函式呼叫過程:①程式先執行函式呼叫之前的語句;②流程的控制轉移到被呼叫函式入口處,同時進行引數傳遞;③執行被呼叫函式中函式體的語句;④流程返回呼叫函式的下一條指令處,將函式返回值帶回;⑤接著執行主調函式未執

mysql無法匯入函式儲存過程解決方法

mysql 建立函式時出現 Error Code : 1418 錯誤解決辦法2008-08-19 17:08Error Code : 1418 This function has none of DETERMINISTIC, NO SQL, or READS SQL

第二章--第三節 成本函式損失函式推導過程

前面一節,介紹了神馬是sigmoid函式。 其實他的本質,根據doctor wu所示,就是y=wTx+b 機器學習的重點就是能夠算出wT和b兩個不同的引數,進行模擬。 損失函式,不知道為啥,doctor wu瞬間就拿出了平方差這個方法,上網搜尋了下,對於損失函式,還