在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ C++/ D語言函數(shù)
類的訪問修飾符
D語言運算符
D語言邏輯運算符
類指針
D語言元組
D語言指針
D語言模塊
D語言sizeof運算符
D語言混合類型
D語言封裝
D語言條件編譯
類的靜態(tài)成員
D語言do...while循環(huán)
D語言結(jié)構(gòu)體
重載
D語言字符串-String
D語言決策語句
D語言接口
D語言for循環(huán)
D語言switch語句
D語言關聯(lián)數(shù)組
D語言范圍
D語言枚舉Enums
契約式編程
D語言并發(fā)
D語言開發(fā)環(huán)境設置
D語言別名
D語言常值
D語言常量
D語言函數(shù)
D語言if嵌套語句
D語言循環(huán)
D語言概述,D語言是什么?
D語言運算符優(yōu)先級
D語言continue語句
D語言異常處理
D語言break語句
D語言if...else語句
D語言類和對象
類繼承
D語言字符
D語言教程
D語言關系運算符
比較操作符重載
構(gòu)造函數(shù)和析構(gòu)函數(shù)
D語言抽象類
D語言if語句
D語言賦值運算符
D中算術運算符
D語言類成員函數(shù)
D語言位運算符
D語言變量
D語言數(shù)據(jù)類型
D語言文件I/O
D語言數(shù)組
一元運算符重載
D語言嵌套switch語句
D語言基本語法
二元運算符重載
this指針
D語言聯(lián)合體
D語言模板
D語言嵌套循環(huán)
D語言while循環(huán)

D語言函數(shù)

基本函數(shù)的定義

return_type function_name( parameter list )
{
   body of the function
}

一個基本的函數(shù)定義由函數(shù)頭和函數(shù)體。這里是一個函數(shù)的所有部分:

  • Return Type: 函數(shù)可以返回一個值。該return_type是函數(shù)返回值的數(shù)據(jù)類型。有些函數(shù)沒有返回值執(zhí)行所需的操作。在這種情況下,return_type是關鍵字void.

  • Function Name: 這是函數(shù)的實際名稱。函數(shù)名和參數(shù)列表一起構(gòu)成了函數(shù)簽名。

  • Parameters: 參數(shù)是像一個占位符。當調(diào)用一個函數(shù),傳遞一個值給該參數(shù)。這個值被稱為實際參數(shù)或參數(shù)。參數(shù)列表是指類型,順序和一個函數(shù)的參數(shù)的數(shù)目。參數(shù)是可選的;也就是說,一個功能可以包含任何參數(shù)。

  • Function Body: 函數(shù)體包含了定義函數(shù)語句的集合。

調(diào)用函數(shù)

我們可以調(diào)用函數(shù)使用下面的語法

function_name(parameter_values)

函數(shù)類型

D編程支持廣泛的函數(shù),它們?nèi)缦旅媪谐觥?/p>

  • 純函數(shù)

  • 拋出異常函數(shù)

  • 參考函數(shù)

  • 自動函數(shù)

  • 可變參數(shù)函數(shù)

  • inout函數(shù)

  • 屬性函數(shù)

各種函數(shù)功能說明。

純函數(shù)

純函數(shù)是無法通過他們的論據(jù)訪問全局或靜態(tài)的,可變的狀態(tài)保存函數(shù)。這可以基于一個事實,即一個純函數(shù)是保證變異不被傳遞給它什么,并在情況下,編譯器可以保證純函數(shù)不能改變它的參數(shù),它可以啟用完整,功能純度(啟用優(yōu)化即保證該函數(shù)總是返回相同的結(jié)果為相同的參數(shù))。

import std.stdio;
int x = 10;
immutable int y = 30;
const int* p;

pure int purefunc(int i,const char* q,immutable int* s)
{
   //writeln("Simple print"); //cannot call impure function 'writeln'

   debug writeln("in foo()"); // ok, impure code allowed in debug statement
   // x = i;  // error, modifying global state
   // i = x;  // error, reading mutable global state
   // i = *p; // error, reading const global state

   i = y;     // ok, reading immutable global state
   auto myvar = new int;     // Can use the new expression:
   return i;
}

void main()
{
   writeln("Value returned from pure function : ",purefunc(x,null,null));
}

當我們運行上面的程序,我們會得到下面的輸出。

Value returned from pure function : 30

拋出異常函數(shù)

拋出異常函數(shù)不會拋出從類Exception派生的任何異常。拋出異常函數(shù)是協(xié)變與拋出。

拋出異常保證函數(shù)不發(fā)出任何異常。

import std.stdio;

int add(int a, int b) nothrow
{
   //writeln("adding"); This will fail because writeln may throw
   int result;

   try {
      writeln("adding"); // compiles
      result = a + b;
   } 

   catch (Exception error) { // catches all exceptions
   }

   return result;
}

void main()
{
   writeln("Added value is ", add(10,20));
}

When we run the above program, we will get the following output.

adding
Added value is 30

參考函數(shù)

參考函數(shù)允許函數(shù)按引用返回。這類似于文獻的功能參數(shù)。

import std.stdio;

ref int greater(ref int first, ref int second)
{
   return (first > second) ? first : second;
}

void main()
{
   int a = 1;
   int b = 2;

   greater(a, b) += 10;  
   writefln("a: %s, b: %s", a, b);  
}

當我們運行上面的程序,我們會得到下面的輸出。

a: 1, b: 12

自動函數(shù)

自動功能可以返回任何類型的值。有什么類型的要返回的任何限制。一個簡單的例子功能自動類型如下。

import std.stdio;

auto add(int first, double second)
{
   double result = first + second;
   return result;
}

void main()
{
   int a = 1;
   double b = 2.5;

   writeln("add(a,b) = ", add(a, b));
}

當我們運行上面的程序,我們會得到下面的輸出。

add(a,b) = 3.5

可變參數(shù)函數(shù)

可變參數(shù)函數(shù)是其中一個函數(shù)參數(shù)的數(shù)量,在運行時確定的函數(shù)。在C中,存在具有ATLEAST一個參數(shù)的限制。但在D編程,不存在這樣的限制。一個簡單的例子如下所示。

import std.stdio;
import core.vararg;

void printargs(int x, ...) {

   for (int i =上一篇:D語言混合類型下一篇:D語言枚舉Enums