D語言數(shù)組允許定義類型的變量,可容納同類但是結(jié)構(gòu)體幾個數(shù)據(jù)項,它允許結(jié)合不同類型的數(shù)據(jù)項提供另一種用戶定義的數(shù)據(jù)類型。
結(jié)構(gòu)用來表示一個記錄,假設(shè)要跟蹤圖書館中的書籍??赡芟M櫫私饷勘緯囊韵聦傩裕?/p>
書名
作者
科目
書籍編號ID
要定義一個結(jié)構(gòu),必須使用結(jié)構(gòu)體struct語句。該結(jié)構(gòu)語句定義了一個新的數(shù)據(jù)類型,項目不止一個成員。該結(jié)構(gòu)語句的格式是這樣的:
struct [structure tag] { member definition; member definition; ... member definition; } [one or more structure variables];
結(jié)構(gòu)體標(biāo)簽是可選的,每個成員的定義是正常的變量定義,比如int i; or float f; 或任何其他有效的變量定義。在該結(jié)構(gòu)的定義的結(jié)尾,最后的分號之前,可以指定一個或多個結(jié)構(gòu)變量,但它是可選的。這里是將聲明書的結(jié)構(gòu)體:
struct Books { char [] title; char [] author; char [] subject; int book_id; };
要訪問一個結(jié)構(gòu)的任何成員,我們使用成員訪問運(yùn)算符(.)成員訪問運(yùn)算編碼為結(jié)構(gòu)體變量名,而我們希望訪問結(jié)構(gòu)成員之間的時間段。可以使用struct關(guān)鍵字來定義結(jié)構(gòu)類型的變量。下面是例子來說明結(jié)構(gòu)的用法:
import std.stdio; struct Books { char [] title; char [] author; char [] subject; int book_id; }; void main( ) { Books Book1; /* Declare Book1 of type Book */ Books Book2; /* Declare Book2 of type Book */ /* book 1 specification */ Book1.title = "D Programming".dup; Book1.author = "Raj".dup; Book1.subject = "D Programming Tutorial".dup; Book1.book_id = 6495407; /* book 2 specification */ Book2.title = "Lua Programming".dup; Book2.author = "Raj".dup; Book2.subject = "Lua Programming Tutorial".dup; Book2.book_id = 6495700; /* print Book1 info */ writeln( "Book 1 title : ", Book1.title); writeln( "Book 1 author : ", Book1.author); writeln( "Book 1 subject : ", Book1.subject); writeln( "Book 1 book_id : ", Book1.book_id); /* print Book2 info */ writeln( "Book 2 title : ", Book2.title); writeln( "Book 2 author : ", Book2.author); writeln( "Book 2 subject : ", Book2.subject); writeln( "Book 2 book_id : ", Book2.book_id); }
當(dāng)上面的代碼被編譯并執(zhí)行,它會產(chǎn)生以下結(jié)果:
Book 1 title : D Programming Book 1 author : Raj Book 1 subject : D Programming Tutorial Book 1 book_id : 6495407 Book 2 title : Lua Programming Book 2 author : Raj Book 2 subject : Lua Programming Tutorial Book 2 book_id : 6495700
可以傳遞一個結(jié)構(gòu)非常類似的方式函數(shù)作為參數(shù)傳遞任何其他變量或指針。訪問在上面的例子已經(jīng)使用類似的方式的結(jié)構(gòu)變量:
import std.stdio; struct Books { char [] title; char [] author; char [] subject; int book_id; }; void main( ) { Books Book1; /* Declare Book1 of type Book */ Books Book2; /* Declare Book2 of type Book */ /* book 1 specification */ Book1.title = "D Programming".dup; Book1.author = "Raj".dup; Book1.subject = "D Programming Tutorial".dup; Book1.book_id = 6495407; /* book 2 specification */ Book2.title = "Lua Programming".dup; Book2.author =