成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我最喜歡的D語言功能

開發 后端
UFCS 能讓你能夠編寫自然的可重用代碼而不會犧牲便利性。

我最喜歡的D語言功能

UFCS 能讓你能夠編寫自然的可重用代碼而不會犧牲便利性。

早在 2017 年,我就寫過為什么 D 語言是開發的絕佳選擇的文章。但是 D 語言中有一個出色的功能我沒有充分的展開介紹:通用函數調用語法Universal Function Call Syntax(UFCS)。UFCS 是 D 語言中的一種語法糖,它可以在類型(字符串、數字、布爾值等)上鏈接任何常規函數,就像該類型的成員函數一樣。

如果你尚未安裝 D 語言,請安裝 D 語言編譯器,以便你可以自己運行 D 代碼

看一下以下示例代碼:

  1. // file: ufcs_demo.d
  2.  
  3. module ufcs_demo;
  4.  
  5. import std.stdio : writeln;
  6.  
  7. int[] evenNumbers(int[] numbers)
  8. {
  9. import std.array : array;
  10. import std.algorithm : filter;
  11.  
  12. return numbers.filter!(n => n % 2 == 0).array;
  13. }
  14.  
  15. void main()
  16. {
  17. writeln(evenNumbers([1, 2, 3, 4]));
  18. }

使用你喜歡的 D 語言編譯器進行編譯,查看這個簡單示例應用做了什么:

  1. $ dmd ufcs_demo.d
  2. $ ./ufcs_demo
  3. [2, 4]

但是,使用作為 D 語言的內置功能的 UFCS ,你還可以自然方式編寫代碼:

  1. ...
  2. writeln([1, 2, 3, 4].evenNumbers());
  3. ...

或完全刪除現在多余的括號,使 evenNumbers 看起來像是一個屬性:

  1. ...
  2. writeln([1, 2, 3, 4].evenNumbers); // prints 2, 4
  3. ...

因此,完整的代碼現在變為:

  1. // file: ufcs_demo.d
  2.  
  3. module ufcs_demo;
  4.  
  5. import std.stdio : writeln;
  6.  
  7. int[] evenNumbers(int[] numbers)
  8. {
  9. import std.array : array;
  10. import std.algorithm : filter;
  11.  
  12. return numbers.filter!(n => n % 2 == 0).array;
  13. }
  14.  
  15. void main()
  16. {
  17. writeln([1, 2, 3, 4].evenNumbers);
  18. }

使用你最喜歡的 D 語言編譯器進行編譯,然后嘗試一下。 如預期的那樣,它產生相同的輸出:

  1. $ dmd ufcs_demo.d
  2. $ ./ufcs_demo
  3. [2, 4]

在編譯過程中,編譯器自動地將數組作為函數的第一個參數。這是一個常規模式,使得使用 D 語言成為一種樂趣,因此,它與你自然而然考慮代碼的感覺非常相似。結果就是函數式編程。

你可能會猜出這打印的是什么:

  1. //file: cool.d
  2. import std.stdio : writeln;
  3. import std.uni : asLowerCase, asCapitalized;
  4.  
  5. void main()
  6. {
  7.     string mySentence = "D IS COOL";
  8.     writeln(mySentence.asLowerCase.asCapitalized);
  9. }

確認一下:

  1. $ dmd cool.d
  2. $ ./cool
  3. D is cool

結合其他 D 語言的功能,UFCS 使你能夠編寫可重用的代碼,并在不犧牲便利性的情況下自然地進行編寫。

是時候嘗試 D 語言了

就像我之前寫的那樣,D 語言是一種很棒的開發語言。從 D 語言的下載頁面可以很容易地進行安裝,因此請下載編譯器,查看示例,并親自體驗 D 語言。 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2022-04-30 18:42:38

Go編程語言

2024-11-05 09:42:59

開發軟件命令行

2012-04-28 09:14:50

編程編程語錄

2012-03-30 13:56:17

編程開發

2021-10-27 14:55:57

Mark TextMarkdown編輯器

2021-01-14 23:14:40

開源Linux生產力應用

2022-01-03 07:46:36

Linux應用程序操作系統

2017-01-11 09:16:49

SQLPython編程語言

2016-03-02 15:13:54

面試開發者問題

2013-10-08 09:34:57

編程漫畫編程漫畫

2024-03-13 13:39:21

2012-02-02 16:42:24

Android用戶

2020-02-10 10:05:12

Linux發行版Ubuntu

2020-08-29 18:51:14

效能工具效率生產力

2013-10-17 11:15:19

2021-03-09 11:09:10

LinuxWindows應用程序

2024-06-28 13:57:34

2018-01-31 14:20:36

Linux分區管理fdisk

2018-11-21 15:09:53

勒索軟件遠程桌面協議攻擊

2021-06-04 09:09:05

FlutterFuchsia操作系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中国黄色在线视频 | 天天激情综合 | 精产国产伦理一二三区 | 九九99精品 | 免费视频一区二区 | 久久成人精品一区二区三区 | 91精品国产色综合久久 | 国产免费看 | 久草精品视频 | 久久久久久免费精品一区二区三区 | 欧美成人精品一区二区男人看 | 亚洲协和影视 | 中文字幕在线精品 | 日本在线一区二区 | 欧美日韩中文字幕在线 | 操夜夜 | www.99热.com | 亚洲视频中文字幕 | 日日骚网 | 免费毛片在线 | 欧美在线成人影院 | 中文字幕丁香5月 | 成人一级视频在线观看 | 国产三级| 日本一区二区三区在线观看 | 日本特黄a级高清免费大片 特黄色一级毛片 | 好好的日在线视频 | 在线精品观看 | 久久久91| 性做久久久久久免费观看欧美 | 亚洲v日韩v综合v精品v | 国产一级在线观看 | 久久成人一区二区三区 | 羞羞视频网页 | 97狠狠干 | 中文在线www| 日韩欧美在线视频观看 | 欧美一区二区三区视频 | 日韩精品一区二区三区四区视频 | 91精品久久久久久久久久入口 | 中文日韩在线 |