自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

我為什么要用 D 語(yǔ)言寫腳本?

開發(fā) 后端
D 語(yǔ)言由于其靜態(tài)類型和元編程能力,經(jīng)常被宣傳為系統(tǒng)編程語(yǔ)言。然而,它也是一種非常高效的腳本語(yǔ)言。

[[381516]]

D 語(yǔ)言以系統(tǒng)編程語(yǔ)言而聞名,但它也是編寫腳本的一個(gè)很好的選擇。

D 語(yǔ)言由于其靜態(tài)類型和元編程能力,經(jīng)常被宣傳為系統(tǒng)編程語(yǔ)言。然而,它也是一種非常高效的腳本語(yǔ)言。

由于 Python 在自動(dòng)化任務(wù)和快速實(shí)現(xiàn)原型想法方面的靈活性,它通常被選為腳本語(yǔ)言。這使得 Python 對(duì)系統(tǒng)管理員、管理者和一般的開發(fā)人員非常有吸引力,因?yàn)樗梢宰詣?dòng)完成他們可能需要手動(dòng)完成的重復(fù)性任務(wù)。

我們自然也可以期待任何其他的腳本編寫語(yǔ)言具有 Python 的這些特性和能力。以下是我認(rèn)為 D 是一個(gè)不錯(cuò)的選擇的兩個(gè)原因。

1、D 很容易讀和寫

作為一種類似于 C 的語(yǔ)言,D 應(yīng)該是大多數(shù)程序員所熟悉的。任何使用 JavaScript、Java、PHP 或 Python 的人對(duì) D 語(yǔ)言都很容易上手。

如果你還沒(méi)有安裝 D,請(qǐng)安裝 D 編譯器,這樣你就可以運(yùn)行本文中的 D 代碼。你也可以使用在線 D 編輯器。

下面是一個(gè) D 代碼的例子,它從一個(gè)名為 words.txt 的文件中讀取單詞,并在命令行中打印出來(lái):

  1. open
  2. source
  3. is
  4. cool

用 D 語(yǔ)言寫腳本:

  1. #!/usr/bin/env rdmd
  2. // file print_words.d
  3.  
  4. // import the D standard library
  5. import std;
  6.  
  7. void main(){
  8. // open the file
  9. File("./words.txt")
  10.  
  11. //iterate by line
  12. .byLine
  13.  
  14. // print each number
  15. .each!writeln;
  16. }

這段代碼以 釋伴 開頭,它將使用 rdmd 來(lái)運(yùn)行這段代碼,rdmd 是 D 編譯器自帶的編譯和運(yùn)行代碼的工具。假設(shè)你運(yùn)行的是 Unix 或 Linux,在運(yùn)行這個(gè)腳本之前,你必須使用chmod 命令使其可執(zhí)行:

  1. chmod u+x print_words.d

現(xiàn)在腳本是可執(zhí)行的,你可以運(yùn)行它:

  1. ./print_words.d

這將在你的命令行中打印以下內(nèi)容:

  1. open
  2. source
  3. is
  4. cool

恭喜你,你寫了第一個(gè) D 語(yǔ)言腳本。你可以看到 D 是如何讓你按順序鏈?zhǔn)秸{(diào)用函數(shù),這讓閱讀代碼的感覺(jué)很自然,類似于你在頭腦中思考問(wèn)題的方式。這個(gè)功能讓 D 成為我最喜歡的編程語(yǔ)言

試著再寫一個(gè)腳本:一個(gè)非營(yíng)利組織的管理員有一個(gè)捐款的文本文件,每筆金額都是單獨(dú)的一行。管理員想把前 10 筆捐款相加,然后打印出金額:

  1. #!/usr/bin/env rdmd
  2. // file sum_donations.d
  3.  
  4. import std;
  5.  
  6. void main()
  7. {
  8. double total = 0;
  9.  
  10. // open the file
  11. File("monies.txt")
  12.  
  13. // iterate by line
  14. .byLine
  15.  
  16. // pick first 10 lines
  17. .take(10)
  18.  
  19. // remove new line characters (\n)
  20. .map!(strip)
  21.  
  22. // convert each to double
  23. .map!(to!double)
  24.  
  25. // add element to total
  26. .tee!((x) { total += x; })
  27.  
  28. // print each number
  29. .each!writeln;
  30.  
  31. // print total
  32. writeln("total: ", total);
  33. }

與 each 一起使用的 ! 操作符是模板參數(shù)的語(yǔ)法。

2、D 是快速原型設(shè)計(jì)的好幫手

D 是靈活的,它可以快速地將代碼敲打在一起,并使其發(fā)揮作用。它的標(biāo)準(zhǔn)庫(kù)中包含了豐富的實(shí)用函數(shù),用于執(zhí)行常見的任務(wù),如操作數(shù)據(jù)(JSON、CSV、文本等)。它還帶有一套豐富的通用算法,用于迭代、搜索、比較和 mutate 數(shù)據(jù)。這些巧妙的算法通過(guò)定義通用的 基于范圍的接口 而按照序列進(jìn)行處理。

上面的腳本顯示了 D 中的鏈?zhǔn)秸{(diào)用函數(shù)如何提供順序處理和操作數(shù)據(jù)的要領(lǐng)。D 的另一個(gè)吸引人的地方是它不斷增長(zhǎng)的用于執(zhí)行普通任務(wù)的第三方包的生態(tài)系統(tǒng)。一個(gè)例子是,使用 Vibe.d web 框架構(gòu)建一個(gè)簡(jiǎn)單的 web 服務(wù)器很容易。下面是一個(gè)例子:

  1. #!/usr/bin/env dub
  2. /+ dub.sdl:
  3. dependency "vibe-d" version="~>0.8.0"
  4. +/
  5. void main()
  6. {
  7. import vibe.d;
  8. listenHTTP(":8080", (req, res) {
  9. res.writeBody("Hello, World: " ~ req.path);
  10. });
  11. runApplication();
  12. }

它使用官方的 D 軟件包管理器 Dub,從 D 軟件包倉(cāng)庫(kù)中獲取 vibe.d Web 框架。Dub 負(fù)責(zé)下載 Vibe.d 包,然后在本地主機(jī) 8080 端口上編譯并啟動(dòng)一個(gè) web 服務(wù)器。

嘗試一下 D 語(yǔ)言

這些只是你可能想用 D 來(lái)寫腳本的幾個(gè)原因。

D 是一種非常適合開發(fā)的語(yǔ)言。你可以很容易從 D 下載頁(yè)面安裝,因此下載編譯器,看看例子,并親自體驗(yàn) D 語(yǔ)言。 

 

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2016-01-12 16:58:31

C游戲

2020-04-07 16:12:56

Go編程語(yǔ)言開發(fā)

2011-10-14 09:20:48

Lisp

2012-07-11 11:05:16

編程

2021-09-07 15:41:35

Bug誘因代碼

2009-01-09 23:06:41

服務(wù)器SCSI硬盤PC

2018-06-15 21:26:13

PythonCrystal語(yǔ)言

2024-01-02 17:28:12

芯片CPUAI計(jì)算

2021-05-11 06:57:15

HBaseBATJ公司

2024-07-02 13:27:38

2021-12-13 01:40:29

ElasticSear倒排索引

2022-05-07 07:35:44

工具讀寫鎖Java

2012-11-13 10:27:45

PythonGo編程語(yǔ)言

2023-09-22 10:05:32

2022-07-06 09:29:40

JMH性能測(cè)試

2015-07-01 10:25:07

Docker開源項(xiàng)目容器

2013-12-30 09:31:34

Node.js技術(shù)

2011-02-22 09:50:21

2018-05-14 11:07:48

服務(wù)器Linux系統(tǒng)

2024-06-19 10:26:36

非阻塞IO客戶端
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)