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。