D語言中的in inout out引數

2021-08-29 03:32:27 字數 409 閱讀 5309

private

import std.stdio, std.process;

void

test(

inta, inout 

intb, 

outint

c)void

main ()

在上面的例子裡,程式在test函式中的輸出語句將輸出: 0

1 0也就是說,out引數取值是無意義的,它只用於賦值。

這裡有乙個很大的問題,呼叫test(a,b,c)時,呼叫者對於c的值被改變可能毫無知覺,甚至成為隱藏很深的bug。對此,許多人建議加強檢查,比如在呼叫時,必須指明inout/out:

test(a, inout b, 

outc);

似乎能夠起到一些警示作用,不過這樣一來,語法上倒不怎麼簡練了。

D 語言中的模組(Module)

模組 模組宣告 多個宣告定義 多個宣告定義 多個宣告定義 宣告定義 宣告定義 多個宣告定義 宣告定義 特徵指示符 匯入宣告 列舉宣告 類宣告介面宣告 聚集宣告 宣告建構函式 析構函式 不變數單元測試 靜態建構函式 靜態析構函式 除錯規格 版本規格 module moduledeclaration d...

D語言中的列舉型別

列舉宣告 enum標誌符 列舉體enum列舉體enum標誌符 列舉基本型別 列舉體enum列舉基本型別 列舉體 列舉基本型別 型別 列舉體 多個列舉成員 列舉成員 列舉成員,列舉成員,多個列舉成員 列舉成員 標誌符 標誌符 表示式enumdeclaration enumidentifier enum...

D語言中的結構和聯合

聚集宣告 標記標記 標誌符標記 標誌符 標記 structunionaggregatedeclaration tagtag identifiertag identifier tag structunion結構和聯合是簡單的資料聚集,是同硬體或者外部型別通訊的資料結構。外部型別可以由作業系統 api ...