程式語言中的快樂天使——Ruby

2021-01-21 圖靈教育

2012年,中央電視臺推出《走基層·百姓心聲》調查節目,對各行業的人進行採訪,問出了一個簡單卻終極的問題:「你幸福嗎?」 從此,「你幸福嗎?」成了一個讓多數人無法直視的問題...

在編程世界,竟然存在一種程式語言肆無忌憚地公然挑戰程式設計師這個終極問題:「編碼的時候,你快樂嗎?」而這門語言有一個很好聽的名字叫 Ruby。

當你聽到Ruby這個名字你第一個想到誰?

是她?

還是她?

然而,世界上有一群酷酷的人,想到的是他!

這位帥哥就是Ruby的創始人松本行弘了,江湖人稱Matz。他僅憑興趣就創造出了一門既能進行高效開發又能讓你享受編程快樂的語言——Ruby。而這個Ruby也許不如上邊二位那麼嫵媚英氣,因為它是一種簡單快捷的面向對象腳本語言。聽說它很神秘,接觸過Ruby的人說它活潑可愛,和它相處之後都會變得快樂起來。要想知道它究竟有多厲害,恐怕你要親自來實踐一下嘍~ 

記得之前小編在微博上做過的一期圖靈夜話,題目是:「如果讓你選擇一門程式語言做你的男/女朋友,你會選哪個?」 小夥伴們是這麼說滴(目測沒有妹子留言)。

A君:「Python,優雅規範,有味道 。」【

B君:「C++是下得廚房(PC),但是上不得廳堂(Web)。」【

C君:「Java是內外兼修, 但是太慢(開發和運行)。」 C君還補充說:「PHP 屬於交際花(弱語言), 油條。」【

D君:「C++ 風情萬種,姿勢繁多,一旦迷上就是一輩子。」【

E君:「C,我喜歡那份羞澀不張揚。」【

F君:「C++,了解得越多就越不懂,海底針啊,我從來都不敢說哪個時刻我真的了解它,真糾結。」【

G君:「Scala,因為我還沒搞定它。」【

H君:「C吧,雖然語言層出不窮,還是覺得它最美,結構合理美觀。」【

.......直到我看到這樣一個閃著紅光的名字Ruby。

某君說:「聽說Ruby做女票很合適。」 我那會兒還不知道松本行弘,小編第一個想到的是大學時看過的美劇《邪惡力量》,劇裡可是有四個Ruby呢,而且從Ruby 1.0-4.0基本都是惡魔!實在想不通為何適合做女票,也許這位仁兄的出廠設置是生性摯愛找虐型產品??(開個玩笑啦)

其實說到程式語言,程序世界裡有著種類繁多的語言。這些語言誕生的緣由多種多樣,有的是為了編寫運行速度快的程序,有的是為了可以在短時間內編寫程序,有的是為了讓程序只需編寫一次就可以在任何環境中運行,有的是為了使小孩也能進行簡單編程,等等。但是,似乎並沒有哪個語言積極地宣稱其目的是快樂編程。這可能是由於各個語言的設計者並沒有認真考慮過讓任何人都可以編程吧。

可是,Ruby不一樣。Ruby 是一種旨在使大家編程時能樂在其中的程式語言。完全面向對象,有豐富的類庫,直觀、人性化的語法等都是 Ruby 的特徵,但這些並不是 Ruby 的目的,只是實現快樂編程的手段。

當然,使大家編程時樂在其中的語言,肯定是一種簡單易掌握的語言,複雜的語言不可能讓人體會到快樂。同時,這門語言又必須是一個功能強大的語言,若非如此,實際編寫程序時會非常費勁。毋庸置言,Ruby 就是這樣一種簡單易掌握,並且功能強大的程式語言。

Ruby 是一群熱愛面向對象編程的程式設計師,為了實現最優秀的面向對象語言而設計、開發出來的。它完全面向對象,所思考的東西都可以直接通過代碼表達出來。同時,Ruby 也具有繼承以及 Mix-in 等面向對象語言的必備特性。另外,Ruby 不僅提供了豐富的標準類庫,還具有一些能夠提高編程效率的功能,比如應對各種異常的錯誤處理機制、自動釋放內存的垃圾回收機制等。

用 C 語言或者 Java 語言編寫的程序,在運行前需要執行編譯這一步驟,把源碼翻譯成計算機可以理解的機器碼。而用腳本語言編寫的源碼並不需要編譯,可以直接運行。也就是說,在使用腳本語言時,開發流程會從編寫源碼 → 編譯源碼 → 運行程序變為編寫源碼 → 運行程序。因此,與需要編譯的語言相比,Ruby 更能讓大家輕鬆享受到編程之趣。

Ruby 能在 Mac OS X、Linux、FreeBSD、Solaris 等類 Unix 作業系統以及 Windows 作業系統等平臺上運行,而且它的大部分腳本都無需修改即可在不同的平臺上運行。

Ruby 誕生時,松本行弘先生就公開了源碼,使之成為開源軟體(自由軟體,free software)。任何人都可以隨意獲取 Ruby,並自由使用。自 1995 年松本行弘先生在網際網路上發布 Ruby 以來, Ruby 得到了來自各方的廣泛支持,並一直活躍至今。


不知道各位小夥伴如今的編程生活怎麼樣?夠不夠快樂呢?當然,不是要大家都來使用Ruby,畢竟每個人使用的語言是不一樣的。但是,松本行弘的理念卻值得每一個編程人學習。如果你還沒體驗過快樂的編程方法,或者你即將開始學習Ruby。小編還是推薦各位小夥伴讀一下這本書~~~


作者:高橋徵義 , 後藤裕蔵
審校:松本行弘
譯者:何文斯
定價:79.00元

本書是日本公認的最好的Ruby入門教程。本書對應Ruby 2.3,通俗易懂地講解了編程時所需要的變量、常量、方法、類、流程控制等的語法,以及主要類的使用方法和簡單的應用,讓沒有編程經驗的讀者也能輕鬆掌握Ruby,做到融會貫通並靈活應用到實際工作中。

高橋徵義(作者)
日本Ruby協會創始人兼會長。日本知名的IT電子書出版平臺達人出版會董事長。著有《Ruby基礎教程》《Rails3絕技190招》等。喜歡的作家是新井素子。

後藤裕藏(作者)
株式會社網絡應用通信研究所(NaCl)董事。執筆有關Ruby的雜誌文章,也是Ruby標準庫webrick和openssl的維護者。喜歡平克・弗洛伊德樂隊。

松本行弘(審校)
暱稱「Matz」,Ruby語言發明者。著有《松本行弘的程序世界》《代碼的未來》等。討厭東京,喜歡溫泉。

何文斯(譯者)

上海交通大學電子工程系研究生畢業,現就職於某國際獨立軟體開發商,從事軟體售後支持工作。對面向對象的程序設計,腳本語言及其在語音、圖像等信號處理中的應用有著濃厚的興趣。

本書採用循序漸進、逐步深入的寫作方式,有一定 Ruby 編程基礎的讀者可能會覺得前半部分有些無趣。建議這類讀者快速瀏覽前兩部分,從第 3 部分開始仔細閱讀。

第 1 部分 Ruby 初體驗

通過簡單的 Ruby 小程序介紹 Ruby 程序的基本構成。

第 2 部分 Ruby 的基礎

介紹 Ruby 語法、規則等 Ruby 編程的基礎知識,以及類、模塊等面向對象編程的相關內容。

第 3 部分 Ruby 的類

要編寫程序,只懂語法還遠遠不夠。Ruby 之所以能使大家快樂編程,主要緣於 Ruby 精心設計的標準類庫。在本部分,我們會列舉多個 Ruby 的基礎類,介紹其功能和使用方法。

第 4 部分 動手製作工具

在本部分,我們將進行一次總複習,介紹一些稍微複雜的 Ruby 程序,讓大家嘗試一下用 Ruby 編寫實際的程序。

附錄 A 搭建 Ruby 運行環境

       介紹各個平臺的 Ruby 安裝方法。

附錄 B 參考

介紹使用 Ruby 時所需的知識以及各相關信息。

習題答案和全書代碼清單

讀者可訪問以下網址參考本書習題答案和代碼清單。

       https://rubyjichujiaocheng.github.io/

第1部分 Ruby初體驗

第1章 Ruby初探  2

1.1 Ruby的運行方法  3

1.2 程序解說  5

1.3 字符串  6

1.4 方法的調用  7

1.5 puts方法  8

1.6 p方法  8

1.7 中文的輸出  9

1.8 數值表示與計算  11

1.9 變量  13

1.10 注釋  14

1.11 控制語句  15

1.12 條件判斷:if~then~end  16

1.13 循環  18

第2章 便利的對象  19

2.1 數組  20

2.2 散列  24

2.3 正則表達式  26

第3章 創建命令  29

3.1 命令行的輸入數據  29

3.2 文件的讀取  30

3.3 方法的定義  34

3.4 其他文件的引用  34

第2部分 Ruby的基礎

第4章 對象、變量和常量  38

4.1 對象  38

4.2 類  39

4.3 變量  39

4.4 常量  42

4.5 保留字  42

4.6 多重賦值  43

第5章 條件判斷  45

5.1 什麼是條件判斷  45

5.2 Ruby中的條件  46

5.3 邏輯運算符  47

5.4 if語句  48

5.5 unless語句  49

5.6 case語句  50

5.7 if修飾符與unless修飾符  53

5.8 總結  53

第6章 循環  56

6.1 循環的基礎  56

6.2 循環時的注意事項  57

6.3 實現循環的方法  57

6.4 times方法  57

6.5 for語句  59

6.6 普通的for語句  61

6.7 while語句  61

6.8 until語句  63

6.9 each方法  64

6.10 loop方法  65

6.11 循環控制  65

6.12 小結  69

第7章 方法  71

7.1 方法的調用  71

7.2 方法的分類  73

7.3 方法的定義  75

第8章 類和模塊  85

8.1 類是什麼  85

8.2 創建類  88

8.3 擴展類  97

8.4 alias 與undef  99

8.5 單例類  100

8.6 模塊是什麼  101

8.7 模塊的使用方法  101

8.8 創建模塊  102

8.9 Mix-in  104

8.10 面向對象程序設計  109

第9章 運算符  115

9.1 賦值運算符  115

9.2 邏輯運算符的應用  116

9.3 條件運算符  118

9.4 範圍運算符  118

9.5 運算符的優先級  119

9.6 定義運算符  120

第10章 錯誤處理與異常  124

10.1 關於錯誤處理  124

10.2 異常處理  125

10.3 異常處理的寫法  126

10.4 後處理  129

10.5 重試  129

10.6 rescue修飾符  130

10.7 異常處理語法的補充  130

10.8 指定需要捕捉的異常  131

10.9 異常類  132

10.10 主動拋出異常  133

第11章 塊  136

11.1 塊是什麼  136

11.2 塊的使用方法  137

11.3 定義帶塊的方法  142

11.4 局部變量與塊變量  146

第3部分 Ruby的類

第12章 數值類  152

12.1 數值類的構成  152

12.2 數值的字面量  154

12.3 算數運算  155

12.4 Math模塊  157

12.5 數值類型轉換  158

12.6 位運算  159

12.7 隨機數  161

12.8 計數  163

12.9 近似值誤差  164

第13章 數組類  167

13.1 複習數組  168

13.2 數組的創建方法  168

13.3 索引的使用方法  170

13.4 作為集合的數組  174

13.5 作為列的數組  176

13.6 主要的數組方法  178

13.7 數組與迭代器  184

13.8 處理數組中的元素  184

13.9 數組的元素  186

13.10 同時訪問多個數組  188

第14章 字符串類  191

14.1 字符串的創建  192

14.2 獲取字符串的長度  196

14.3 字符串的索引  197

14.4 字符串的連接  197

14.5 字符串的比較  198

14.6 字符串的分割  200

14.7 換行符的使用方法  201

14.8 字符串的檢索與替換  202

14.9 字符串與數組的共同方法  203

14.10 其他方法  206

14.11 日語字符編碼的轉換  207

第15章 散列類  211

15.1 複習散列  211

15.2 散列的創建  212

15.3 值的獲取與設定  213

15.4 查看指定對象是否為散列的鍵或值  215

15.5 查看散列的大小  216

15.6 刪除鍵值  216

15.7 初始化散列  217

15.8 合併兩個散列  219

15.9 應用示例:計算單詞數量  219

第16章 正則表達式類  223

16.1 關於正則表達式  223

16.2 正則表達式的模式與匹配  224

16.3 使用quote方法的正則表達式  234

16.4 正則表達式的選項  234

16.5 捕獲  235

16.6 使用正則表達式的方法  236

16.7 正則表達式的例子  238

第17章 IO類  241

17.1 輸入/輸出的種類  241

17.2 基本的輸入/輸出操作  245

17.3 文件指針  249

17.4 二進位模式與文本模式  250

17.5 緩衝  251

17.6 與命令進行交互  254

17.7 open-uri庫  255

17.8 stringio庫  255

第18章 File類與Dir類  258

18.1 File類  258

18.2 目錄的操作  260

18.3 文件與目錄的屬性  265

18.4 文件名的操作  268

18.5 與文件操作相關的庫  270

第19章 Encoding類  274

19.1 Ruby 的編碼與字符串  274

19.2 腳本編碼與魔法注釋  275

19.3 Encoding類  276

19.4 正則表達式與編碼  280

19.5 IO類與編碼  280

第20章 Time類與Date類  284

20.1 Time類與Date類  284

20.2 獲取時間  285

20.3 計算時間  286

20.4 時間的格式  286

20.5 本地時間  288

20.6 從字符串中獲取時間  288

20.7 獲取日期  289

20.8 計算日期  290

20.9 日期的格式  291

20.10 從字符串中獲取日期  291

20.11 Time與Date的互相轉換  292

第21章 Proc類  294

21.1 Proc類是什麼  294

21.2 Proc的特徵  298

21.3 Proc類的實例方法  299

第4部分 動手製作工具

第22章 文本處理  304

22.1 準備文本  304

22.2 擴展simple_grep.rb :顯示次數  308

22.3 擴展simple_grep.rb :顯示匹配的部分  309

第23章 檢索郵政編碼  313

23.1 獲取郵政編碼  313

23.2 csv庫  314

23.3 sqlite3庫  315

23.4 插入數據  317

23.5 檢索數據  319

23.6 小結  320

附錄A 搭建Ruby運行環境  322

附錄B Ruby參考集  331

掃一掃,亞馬遜購~

(悄悄告訴你!亞馬遜有滿100減20活動哦~)

即將送出3本《Ruby基礎教程(第5版)》。小夥伴們來評論區留言說說你對Ruby的印象。或者你覺得Ruby的哪些特性是你最喜歡或者最討厭的?精選留言選擇3位獲得贈書哦!

              截止日期9月26日10:00。

相關焦點

  • Ruby CGI 編程
    Ruby CGI 編程Ruby 是一門通用的語言,不僅僅是一門應用於WEB開發的語言,但 Ruby 在WEB應用及WEB工具中的開發是最常見的。
  • 通過開源書籍學習 Ruby 編程
    本書是由 Ruby 項目 Prawn 的開發者所撰寫的,它闡述了如何使用 Ruby 設計美麗的 API 和特定領域語言,以及如何利用函數式編程想法和技術,從而簡化代碼,提高效率。《Ruby Best Practices》 更多的內容是關於如何使用 Ruby 來解決問題,它闡述的是你應該使用的最佳解決方案。這本書不是針對 Ruby 初學者的,所以對於編程新手也不會有太多幫助。
  • 看完這5本Ruby書目,目標找到Ruby工作
    這本書以Ruby程式語言為基礎,以動態特性為核心,實現大量代碼實例,通過詳細的注釋解釋每個日常使用Ruby編程中遇到的知識點。        本書內容由淺入深,主要包括Ruby程式語言的基本語法、面向對象的特性、默認對象、控制技術、常用的內置類、正則表達式、I/O操作等。最後,它使用大量空間來描述ruby中最值得注意的動態特性。
  • Ruby 語言教程
    Ruby 是一種開源的面向對象程序設計的伺服器端腳本語言,在 20 世紀 90 年代中期由日本的松本行弘(まつもとゆきひろ/Yukihiro
  • 程式語言 Ruby 如何還能再活 25 年?
    這也許不是大家希望在編程大會上聽到的主題演講者所提出的第一個問題,但這是來自日本的,Ruby 程式語言的創始人,和藹可親的松本行弘(Yukihiro Matsumoto,被稱為 Matz),在為期兩天的年度 Bath Ruby 大會上,與 500 多位 Ruby 開發者交談時提出的第一個問題。
  • 數學極差的程式設計師-ruby之父
    到了初中的時候,他的父親又給他買了一臺Sharp PC-1210,這個很類似我們今天的計算器,但是它不僅可以計算,還可以編程。那時候的他對只要輸入指令,計算機就可以按照你的指令進行操作產生了濃厚的興趣。也就是那時候,他已經不知不覺地走入了計算機的世界。
  • 外媒Dice:Ruby、Objective-C 等 5 種程式語言可能會衰落
    根據 Dice 報導,並不是所有的程式語言都永遠存在,因為新一代的開發人員會接受他們覺得更容易使用的其他語言和框架。為了確定哪種程式語言可能在中長期內註定失敗,他們查看了TIOBE和RedMonk的受歡迎程度排名,以及Dice自己的職務公告資料庫。列出以下語言:
  • 初學者的Ruby語言第3部分:Ruby字符串
    Code " + number如果我們執行:ruby-strings.rb:7:in +': can't convert Fixnum into String (TypeError) from ruby-strings.rb:7:in'在Ruby
  • Ruby 3.0發布,比 Ruby2快3倍
    幾個月前 Ruby 程式語言的創建者和首席設計師 Yukihiro Matsumoto(松本行弘)表示 Ruby 3.0 將在聖誕這天發布,現在根據官方信息
  • 電腦入門程式語言
    今天和大家介紹一下電腦入門編程學什麼語言更合適。首選python語言,python 是一門開源免費、通用型的腳本程式語言,現在社會上會python語言的人很吃香的。它上手簡單,功能強大,堅持「極簡主義」。
  • 想學編程不知道學什麼語言?幾大流行程式語言比較
    那麼編程的語言到底哪一個適合我們去學習,哪個能讓我們很快的能夠熟練並且能夠走上工作崗位的?下面我就來給大家對比一下幾個熱門的程式語言。在最新的TIOBE 10 月程式語言排行榜中,Java排在第一位,然後是C,C++,python,Visual Basic.NET C#。Python建議學習 Python。
  • 想學好Python程式語言?這幾本書趕緊收藏!
    想學好Python程式語言?這幾本書趕緊收藏!近年來,隨著兒童編程教育行業的快速發展,越來越多的家長也開始日益重視孩子的科技素質興趣培養,兒童編程培訓也開始在少兒興趣素質培訓市場得到越來越大的普及。有趣的書籍能夠吸引孩子們持續閱讀,從而喜歡上讀書,體會到讀書的快樂。少兒編程書籍也能起到同樣的作用。有少兒編程啟蒙書籍做基礎鋪墊,那孩子的編程學習之路不再坎坷,而是在歡快的氣氛中學習,在有趣的情節中徜徉,汲取知識營養,鍛造編程人才指日可待。
  • 幫你提升 Python 的 27 種程式語言
    儘管我個人確實了解這其中的許多程式語言(並且在開發產品過程中已經用過幾種),完整的推薦表還是額外添加了一部分我間接了解(往往是通過閱讀教程和設計文檔,或是和我信任的朋友交流這門語言的優勢和弱勢)的程式語言。
  • python程式語言,如何才能學好?
    python是世界上功能最多且最強大的程式語言之一。使用 Python,你可以編寫自己的應用程式,創建遊戲、設計算法、甚至編程一個機器人。學習 Python 還可以擔任軟體工程師、Web 開發人員、移動開發人員或者數據科學家。它還可以大大改善你目前的職業生涯。但是在你建立網站或從 Google 申請工作之前,你需要掌握 Python。那麼學習 Python 的最佳方法是什麼?
  • RubyMotion之父:Ruby是目前替代Objective-C的最佳iOS開發語言
    這不科學根據TIOBE歷史數據,Ruby和Java、Objective-C同屬世界十大程式語言,其中Ruby位列第十,Java第二,Objective-C第三。根據CSDN 2011薪資調查結果顯示,Ruby程式設計師中,月薪過萬所佔比例超過33%。
  • 誰會是2021年最好的後端程式語言
    讓我們從JavaScript、Python和Go中選擇出2021年將會使用的程式語言吧。在討論每種語言的優點之前,先看一些線上調查及其結果。 調查和其他數據 Stack Overflow調查 Stack Overflow的年度開發者調查是世界上規模最大、最全面的針對代碼使用者的調查,超過9萬名開發人員參與了這項調查。
  • 非計算機專業的同學在學習編程時,除了程式語言還需要學什麼
    首先,對於想自學編程的同學來說,在學習程式語言的過程中,還需要同步學習很多內容,具體的學習內容要結合自己的主攻方向,比如學習C語言的同學如果想往嵌入式方向發展,就需要按照嵌入式開發的要求學習相關的知識。
  • 新手入門後端服務,選什麼程式語言?
    那麼後端服務開發有好幾門語言,新手到底應該選擇什麼程式語言呢?程式語言分為面向過程和面向對象語言。這是啥,是不是有點懵。不用急,今天我們從簡單入手介紹下幾門語言。大家選擇適合自己的,著手學習就好。大家首先需要確定自己未來的開發領域,比如說遊戲,應用軟體,嵌入式等等。這是大家選擇語言的基礎。實際上,不管哪種程式語言對這些開發領域,都可以勝任。
  • 「首款國產程式語言」栽了!號稱自主開發,卻是換皮!
    據當初介紹,木蘭Mulan語言主要定位於面向智能物聯應用、採用最新程式語言設計理念和編譯技術的程序設計語言,開發團隊致力於將其打造為「智能物聯時代的C語言」。該語言號稱由計算所編譯實驗室完全自主設計、開發和實現,與之配套的編譯器與集成開發工具也完全由團隊自主實現。聽起來很振奮人心,但木蘭程式語言發布之後沒幾天,就被網友扒了皮。
  • 編程貓Kitten,帶你走進編程的趣味世界
    經歷了產品化的探索之後,編程貓從「有趣」出發,希望青少年通過圖形化編程學習複雜的程序語言邏輯,減少孩子對編程的心理抗拒性,自主研發了更為適合孩子學習的圖形化編程工具Kitten。編程貓Kitten:寓教於樂,趣味學習編程貓Kitten減少繁瑣的代碼步驟,便留下了更多的空間讓孩子自己去創造。由此,Kitten也成為了他們展現想像力的最佳舞臺。