Linux中國
我最喜歡的 D 語言功能
早在 2017 年,我就寫過為什麼 D 語言是開發的絕佳選擇的文章。但是 D 語言中有一個出色的功能我沒有充分的展開介紹: 通用函數調用語法 (UFCS)。UFCS 是 D 語言中的一種語法糖,它可以在類型(字元串、數字、布爾值等)上鏈接任何常規函數,就像該類型的成員函數一樣。
如果你尚未安裝 D 語言,請安裝 D 語言編譯器,以便你可以自己運行 D 代碼。
看一下以下示例代碼:
// file: ufcs_demo.d
module ufcs_demo;
import std.stdio : writeln;
int[] evenNumbers(int[] numbers)
{
import std.array : array;
import std.algorithm : filter;
return numbers.filter!(n => n % 2 == 0).array;
}
void main()
{
writeln(evenNumbers([1, 2, 3, 4]));
}
使用你喜歡的 D 語言編譯器進行編譯,查看這個簡單示例應用做了什麼:
$ dmd ufcs_demo.d
$ ./ufcs_demo
[2, 4]
但是,使用作為 D 語言的內置功能的 UFCS ,你還可以自然方式編寫代碼:
...
writeln([1, 2, 3, 4].evenNumbers());
...
或完全刪除現在多餘的括弧,使 evenNumbers 看起來像是一個屬性:
...
writeln([1, 2, 3, 4].evenNumbers); // prints 2, 4
...
因此,完整的代碼現在變為:
// file: ufcs_demo.d
module ufcs_demo;
import std.stdio : writeln;
int[] evenNumbers(int[] numbers)
{
import std.array : array;
import std.algorithm : filter;
return numbers.filter!(n => n % 2 == 0).array;
}
void main()
{
writeln([1, 2, 3, 4].evenNumbers);
}
使用你最喜歡的 D 語言編譯器進行編譯,然後嘗試一下。 如預期的那樣,它產生相同的輸出:
$ dmd ufcs_demo.d
$ ./ufcs_demo
[2, 4]
在編譯過程中,編譯器自動地將數組作為函數的第一個參數。這是一個常規模式,使得使用 D 語言成為一種樂趣,因此,它與你自然而然考慮代碼的感覺非常相似。結果就是函數式編程。
你可能會猜出這列印的是什麼:
//file: cool.d
import std.stdio : writeln;
import std.uni : asLowerCase, asCapitalized;
void main()
{
string mySentence = "D IS COOL";
writeln(mySentence.asLowerCase.asCapitalized);
}
確認一下:
$ dmd cool.d
$ ./cool
D is cool
結合其他 D 語言的功能,UFCS 使你能夠編寫可重用的代碼,並在不犧牲便利性的情況下自然地進行編寫。
是時候嘗試 D 語言了
就像我之前寫的那樣,D 語言是一種很棒的開發語言。從 D 語言的下載頁面可以很容易地進行安裝,因此請下載編譯器,查看示例,並親自體驗 D 語言。
via: https://opensource.com/article/20/7/d-programming
作者:Lawrence Aberba 選題:lujun9972 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive
對這篇文章感覺如何?
太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
More in:Linux中國
捐贈 Let's Encrypt,共建安全的互聯網
隨著 Mozilla、蘋果和谷歌對沃通和 StartCom 這兩家 CA 公司處罰落定,很多使用這兩家 CA 所簽發證書的網站紛紛尋求新的證書籤發商。有一個非盈利組織可以為大家提供了免費、可靠和安全的 SSL 證書服務,這就是 Let's Encrypt 項目。現在,它需要您的幫助
Let's Encrypt 正式發布,已經保護 380 萬個域名
由於 Let's Encrypt 讓安裝 X.509 TLS 證書變得非常簡單,所以這個數量增長迅猛。
關於Linux防火牆iptables的面試問答
Nishita Agarwal是Tecmint的用戶,她將分享關於她剛剛經歷的一家公司(印度的一家私人公司Pune)的面試經驗。在面試中她被問及許多不同的問題,但她是iptables方面的專家,因此她想分享這些關於iptables的問題和相應的答案給那些以後可能會進行相關面試的人。 所有的問題和相應的答案都基於Nishita Agarwal的記憶並經過了重寫。 嗨,朋友!我叫Nishita Agarwal。我已經取得了理學學士學位,我的專業集中在UNIX和它的變種(BSD,Linux)。它們一直深深的吸引著我。我在存儲方面有1年多的經驗。我正在尋求職業上的變化,並將供職於印度的P
Lets Encrypt 已被所有主流瀏覽器所信任
旨在讓每個網站都能使用 HTTPS 加密的非贏利組織 Lets Encrypt 已經得了 IdenTrust的交叉簽名,這意味著其證書現在已經可以被所有主流的瀏覽器所信任。從這個裡程碑事件開始,訪問者訪問使用了Lets Encrypt 證書的網站不再需要特別配置就可以得到 HTTPS 安全保護了。 Lets Encrypt 的兩個中級證書 ...

















