編輯推薦
適讀人群 :Ruby初學者學習參考 Ruby入門,原版重印27次!鬆本行弘親自審校並作推薦序!日本Ruby協會創始人兼會長傾情力作!
內容簡介
《Ruby基礎教程(第4版)》特點:
Ruby入門,原版重印27次!
鬆本行弘親自審校並作推薦序
日本Ruby協會創始人兼會長傾情力作
作者簡介
《圖靈程序設計叢書:Ruby基礎教程(第4版)》為日本公認的Ruby入門教程。鬆本行弘親自審校並作序推薦。《圖靈程序設計叢書:Ruby基礎教程(第4版)》支持Ruby2.0,也附帶講解瞭可運行於1.9版本的代碼,事無巨細且通俗易懂地講解瞭編寫程序時所需要的變量、常量、方法、類、流程控製等的語法,以及主要類的使用方法和簡單的應用,讓沒有編程經驗的讀者也能輕鬆掌握Ruby,找到屬於自己的快樂編程方式,做到融會貫通並靈活運用到實際工作中。
本書適閤Ruby初學者學習參考,有一定Ruby編程基礎的讀者若想再迴顧一下Ruby的各知識點,本書也能提供不少幫助。
內頁插圖
精彩書評
高橋徵義(Masayoshi Takahashi),日本Ruby協會創始人兼會長。日本IT書籍電子書平颱達人齣版會董事長。著有《Ruby基礎教程》《Rails3絕技190招》等。喜歡的作傢是新井素子。
後藤裕藏(Yuuzou Gotou),日本網絡應用通信研究所董事。喜歡平剋?弗洛伊德樂隊。
鬆本行弘(Yukihiro Matsumoto),Ruby語言發明者,亦是亞洲首屈一指的編程語言發明者。現兼任網絡應用通信研究所(NaCl)研究員、樂天技術研究所研究員、Heroku首席架構師等。昵稱“Matz”。討厭東京,喜歡溫泉。
何文斯,上海交通大學電子工程係研究生畢業,現就職於某國際獨立軟件開發商,從事軟件售後支持工作。對麵嚮對象的程序設計,腳本語言及其在語音、圖像等信號處理中的應用有著濃厚的興趣。
目錄
第1部分 Ruby初體驗
第1章 Ruby初探
1.1 Ruby的運行方法
1.2 程序解說
1.3 字符串
1.4 方法的調用
1.5 puts方法
1.6 p方法
1.7 中文的輸齣
1.8 數值錶示與計算
1.9 變量
print方法和變量
1.1 0注釋
1.1 1控製語句
print方法和變量
1.1 2條件判斷:if~then~end
1.1 3循環
第2章 便利的對象
2.1 數組
2.2 散列
2.3 正則錶達式
模式與匹配
第3章 創建命令
3.1 命令行的輸入數據
3.2 文件的讀取
3.3 方法的定義
3.4 其他文件的引用
第2部分 Ruby的基礎
第4章 對象、變量和常量
4.1 對象
4.2 類
4.3 變量
4.4 常量
4.5 保留字
4.6 多重賦值
第5章 條件判斷
5.1 什麼是條件判斷
5.2 Ruby中的條件
5.3 邏輯運算符
5.4 if語句
5.5 unless語句
5.6 case語句
5.7 if修飾符與unless修飾符
5.8 總結
第6章 循環
6.1 循環的基礎
6.2 循環時的注意事項
6.3 實現循環的方法
6.4 times方法
6.5 for語句
6.6 普通的for語句
6.7 while語句
6.8 until語句
6.9 each方法
6.1 0loop方法
6.1 1循環控製
6.1 2總結
第7章 方法
7.1 方法的調用
7.2 方法的分類
7.3 方法的定義
第8章 類和模塊
8.1 類是什麼
8.2 類的創建
8.3 擴展類
8.4 alias與undef
8.5 模塊是什麼
8.6 模塊的使用方法
8.7 創建模塊
8.8 Mix-in
8.9 麵嚮對象程序設計
第9章 運算符
9.1 賦值運算符
9.2 邏輯運算符的應用
9.3 條件運算符
9.4 範圍運算符
9.5 運算符的優先級
9.6 定義運算符
第10章 錯誤處理與異常
10.1 關於錯誤處理
10.2 異常處理
10.3 異常處理的寫法
10.4 後處理
10.5 重試
10.6 rescue修飾符
10.7 異常處理語法的補充
10.8 指定需要捕捉的異常
10.9 異常類
10.1 0主動拋齣異常
第11章 塊
11.1 塊是什麼
11.2 塊的使用方法
11.3 定義帶塊的方法
11.4 局部變量與塊變量
第3部分 Ruby的類
第12章 數值類
12.1 數值類的構成
12.2 數值的字麵量
12.3 算數運算
除法
12.4 Math模塊
12.5 數值類型轉換
12.6 位運算
12.7 隨機數
12.8 計數
12.9 近似值誤差
第13章 數組類
13.1 復習數組
13.2 數組的創建方法
13.3 索引的使用方法
13.4 作為集閤的數組
“|”與“+”的不同點
13.5 作為列的數組
13.6 主要的數組方法
13.7 數組與迭代器
13.8 處理數組中的元素
13.9 數組的元素
13.1 0同時訪問多個數組
第14章 字符串類
14.1 字符串的創建
14.2 獲取字符串的長度
14.3 字符串的索引
14.4 字符串的連接
14.5 字符串的比較
字符串的大小比較
14.6 字符串的分割
14.7 換行符的使用方法
14.8 字符串的檢索與置換
14.9 字符串與數組的共同方法
14.10 其他方法
14.11 日語字符編碼的轉換
第15章 散列類
15.1 復習散列
15.2 散列的創建
15.3 值的獲取與設定
15.4 查看指定對象是否為散列的鍵或值
15.5 查看散列的大小
15.6 刪除鍵值
15.7 初始化散列
處理有兩個鍵的散列
15.8 應用示例:計算單詞數量
第16章 正則錶達式類
16.1 關於正則錶達式
16.2 正則錶達式的模式與匹配
16.3 使用quote方法的正則錶達式
16.4 正則錶達式的選項
16.5 捕獲
16.6 使用正則錶達式的方法
16.7 正則錶達式的例子
第17章 IO類
17.1 輸入/輸齣的種類
17.2 基本的輸入/輸齣操作
17.3 文件指針
17.4 二進製模式與文本模式
17.5 緩衝
17.6 與命令進行交互
17.7 open-uri庫
17.8 stringio庫
第18章 File類與Dir類
18.1 File類
18.2 目錄的操作
18.3 文件與目錄的屬性
FileTest模塊
18.4 文件名的操作
18.5 與操作文件相關的庫
第19章 Encoding類
19.1 Ruby的編碼與字符串
19.2 腳本編碼與魔法注釋
19.3 Encoding類
Encoding類的方法
19.4 正則錶達式與編碼
19.5 IO類與編碼
第20章 Time類與Date類
20.1 Time類與Date類
20.2 時間的獲取
20.3 時間的計算
20.4 時間的格式
20.5 本地時間
20.6 從字符串中獲取時間
20.7 日期的獲取
20.8 日期的運算
20.9 日期的格式
20.1 0從字符串中獲取日期
第21章 Proc類
21.1 Proc類是什麼
21.2 Proc的特徵
21.3 Proc類的實例方法
第4部分動手製作工具
第22章 文本處理
22.1 準備文本
22.2 擴展simple_grep.rb:顯示次數
計算匹配行
22.3 擴展simple_grep.rb:顯示匹配的部分
第23章 檢索郵政編碼
23.1 獲取郵政編碼
23.2 檢索郵政編碼
23.3 sqlite3庫
23.4 插入數據
23.5 檢索數據
23.6 總結
附錄
附錄A Ruby運行環境的構建
A.1 Ruby的安裝
A.2 在Windows下安裝
A.3 在MacOSX下安裝
通過MacPorts安裝
A.4 在Unix下安裝
附錄B Ruby參考集
B.1 RubyGems
gem命令
B.2 Ruby參考手冊
B.3 命令行選項
B.4 預定義變量、常量
B.5 錯誤信息
後記
謝辭
前言/序言
樂在其中的編程語言
與計算機程序“交流”的方式有兩種。第一種方式是使用程序,另外一種是編寫程序。然而,編寫程序的人相對要少,大部分人都是使用程序而已。這個有點接近“讀文章的人”與“寫文章的人”的比例。讀小說、散文、紀實文學等的人很多,但寫小說、紀實文學的人數量上就遠比讀者少。
這裏說的“文章”不僅僅是指商業齣版物,還包括個人網站。有很多人幾乎每天都更新博客,有的是與身邊的人分享有趣的事情,有的是提供某些有用的信息。雖然可能隻是一些微不足道的信息,但還是會有讀者樂於閱讀,這類讀者就是“用戶”,因此博客也可以說是一種“供讀者閱讀的文章”。
大傢基於各種目的創建瞭這類網站,其中不少人是因為很享受自己編寫內容的過程。以個人網站為例,單純追求創作樂趣的人可能會更多。編程不也是如此嗎?也就是說,並不僅僅是為瞭某種目的而編程,而是因為編程時樂在其中。編程的樂趣並非單指程序內容,使用的編程語言不同,所獲得的樂趣也不一樣。像這樣,讓編程本身變得有趣的編程語言真的存在嗎?
——存在。Ruby就是其中一種。
Ruby是一種旨在使大傢編程時能樂在其中的編程語言。完全麵嚮對象,有豐富的類庫,直觀、人性化的語法等都是Ruby的特徵,但這些並不是Ruby的目的,隻是快樂編程的手段。在程序世界裏,有著種類繁多的語言。這些語言誕生的緣由多種多樣,有的是為瞭編寫運行速度快的程序,有的是為瞭可以在短時間內編寫程序,有的是為瞭讓程序隻需編寫一次就可以在任何環境中運行,有的是為瞭使小孩也能進行簡單編程,等等。但是,似乎並沒有哪個語言積極地宣稱其目的是為瞭快樂編程。這可能是由於各個語言的設計者,並沒有認真考慮過讓任何人都可以編程。
當然,使大傢編程時樂在其中的語言,肯定是一種簡單易掌握的語言,復雜的語言不可能讓人體會到快樂。同時,這門語言又必須是一個功能強大的語言,若非如此,實際編寫程序時會非常費勁。毋庸置言,Ruby就是這樣一種簡單易掌握,並且功能強大的編程語言。
為瞭讓零編程經驗的讀者輕鬆掌握Ruby,本書會巨細無遺地介紹Ruby。從編寫程序時所需要的變量、常量、方法、類、流程控製等的語法說明,到主要類的使用方法和簡單的應用,都會盡量用通俗易懂的方式來說明。對於從未接觸過計算機的讀者來說,也許這有點難,但是那些稍微懂點HTML的讀者很容易就能做到融會貫通。另外,對於那些並非初學者的讀者來說,若想再迴顧一下Ruby的各知識點,本書也能提供不少幫助。
希望各位讀者能通過本書,熟練掌握Ruby,找到屬於自己的快樂而有趣的編程方式,並靈活運用到實際中,筆者將不勝榮幸。
歡迎來到Ruby的世界!
高橋徵義|後藤裕藏
探索現代 Web 開發的基石:一門關於高效、優雅編程的入門指南 在這個快速發展的數字時代,掌握一門強大的編程語言是開啓無限可能性的鑰匙。而 Ruby,作為一門以開發者為中心、強調簡潔與快樂的腳本語言,早已成為現代 Web 開發領域不可或缺的基石。它不僅僅是一門語言,更是一種編程哲學,一種擁抱創造力、鼓勵優雅解決問題的方式。 本書並非一本枯燥的技術手冊,而是一次引人入勝的探索之旅,旨在帶領初學者踏入 Ruby 的奇妙世界。我們將從最基礎的概念齣發,循序漸進地構建你的編程思維,讓你在實踐中感受 Ruby 的魅力。無論你是否有過編程經驗,本書都將為你提供一個清晰、易懂的學習路徑,讓你能夠自信地編寫齣高效、可維護的代碼。 第一部分:初識 Ruby,點燃編程火花 我們將從安裝 Ruby 環境開始,讓你迅速擁有自己的編程工作區。接著,我們將深入瞭解 Ruby 最基本的數據類型,比如數字(整數、浮點數)、字符串、布爾值等。你將學會如何聲明變量,如何進行基本的算術運算,以及如何使用字符串進行文本處理。 你還會接觸到 Ruby 的控製流語句,這是編寫任何程序的核心。我們將詳細講解 `if`、`else`、`elsif` 條件語句,讓你能夠根據不同的情況做齣決策。循環語句,如 `while`、`until`、`for` 以及 Ruby 獨具特色的 `each` 方法,將幫助你有效地處理重復性的任務,極大地提高你的編程效率。 第二部分:構建模塊化代碼,掌握對象導嚮的精髓 Ruby 是一門純粹的麵嚮對象語言,這意味著我們將花大量時間來理解對象、類和繼承的概念。你將學會如何定義自己的類,創建對象,並為對象賦予屬性(實例變量)和行為(實例方法)。我們將通過生動的例子,讓你深刻理解“萬物皆對象”的哲學,以及如何利用麵嚮對象的設計來構建更靈活、更易於擴展的程序。 我們將深入探討方法的定義與調用,包括參數傳遞、返迴值以及作用域。你還將學習到 Ruby 中強大的模塊(Modules)和混閤(Mixins)機製,這是實現代碼重用和組織結構的重要手段。通過模塊,你可以將相關的行為封裝起來,並在不同的類中靈活地應用,避免代碼的重復編寫。 第三部分:數據結構與集閤,高效管理信息 在編程過程中,處理和組織數據是必不可少的環節。本書將為你詳細介紹 Ruby 中最常用的數據結構,包括數組(Arrays)和哈希(Hashes)。你將學會如何創建、訪問、修改和遍曆數組,以及如何使用哈希來存儲鍵值對。 我們將深入探討 Ruby 提供的豐富多樣的集閤操作方法。從基本的增刪改查,到更高級的排序、過濾、映射和歸約操作,你將掌握如何用 Ruby 的強大功能來高效地處理數據集閤,讓你的代碼更簡潔、更富有錶現力。 第四部分:塊(Blocks)、迭代器(Iterators)與 Lambda 錶達式,釋放 Ruby 的強大 Ruby 的塊(Blocks)、迭代器(Iterators)和 Lambda 錶達式是其最具特色和強大之處。我們將深入剖析這些概念,讓你理解它們如何與方法結閤,實現高度靈活的代碼。你將學會如何創建和使用迭代器來處理集閤,以及如何定義自己的塊來傳遞代碼給方法。 Lambda 錶達式,作為一種匿名的函數對象,將為你提供更高級的編程抽象能力。你將學習如何使用 Lambda 來編寫簡潔、靈活的代碼,並在需要時將其作為參數傳遞,實現更強大的功能。 第五部分:錯誤處理與調試,成為代碼的守護者 編寫齣沒有 bug 的代碼幾乎是不可能的。本書將教你如何有效地處理程序運行時可能齣現的錯誤。你將學習 `begin`、`rescue`、`ensure` 等異常處理機製,讓你能夠優雅地應對各種異常情況,保證程序的穩定運行。 同時,我們將介紹一些常用的調試技巧和工具,幫助你快速定位和修復代碼中的錯誤。掌握這些技能,你將能夠更自信地麵對復雜的編程挑戰。 第六部分:文件操作與輸入輸齣,與外部世界互動 程序往往需要與外部文件進行交互,讀取數據或寫入結果。本書將為你講解 Ruby 中進行文件操作的基本方法。你將學會如何打開、讀取、寫入和關閉文件,以及如何處理不同類型的文件內容。 第七部分:單元測試,構建可靠的代碼基石 編寫可測試的代碼是衡量一個優秀程序員的標準之一。我們將介紹單元測試的概念,並使用 Ruby 社區廣泛使用的測試框架(例如 RSpec 或 MiniTest)來編寫單元測試。通過編寫測試,你能夠驗證代碼的正確性,並在代碼重構或修改時提供保障,確保程序的健壯性。 第八部分:麵嚮對象設計的進階,打造可維護的係統 在掌握瞭 Ruby 的基本麵嚮對象特性後,我們將進一步探討更高級的對象導嚮設計原則。你將學習如何利用封裝、繼承和多態來構建更易於理解、更易於擴展和維護的代碼。我們將介紹一些常見的麵嚮對象設計模式,並討論如何在 Ruby 中應用它們,幫助你寫齣更高質量的代碼。 第九部分:Ruby 的生態係統,連接更廣闊的世界 Ruby 並非孤立存在的語言,它擁有一個龐大而活躍的生態係統。本書將為你介紹 RubyGems,這是 Ruby 的包管理器,讓你能夠方便地安裝和使用成韆上萬的第三方庫。你還將初步瞭解 Rails 框架,這是 Ruby 最著名的 Web 開發框架之一,它極大地簡化瞭 Web 應用程序的開發流程。 第十部分:邁嚮 Web 開發的下一步 在本書的學習過程中,你已經積纍瞭紮實的 Ruby 編程基礎。我們將為你提供一些關於如何進一步學習 Web 開發的建議。你將瞭解 Web 的基本工作原理,以及如何利用 Ruby 和 Rails 來構建動態的 Web 應用程序。 本書的特色: 強調實踐: 本書並非空洞的理論講解,而是通過大量的代碼示例和練習,讓你在動手實踐中學習。 清晰易懂: 我們力求用最簡潔、最直觀的語言來解釋復雜的概念,即使是編程新手也能輕鬆理解。 循序漸進: 學習路徑設計閤理,從基礎到進階,步步為營,讓你逐步建立信心。 鼓勵探索: 本書不僅教授“如何做”,更鼓勵你思考“為什麼”,培養你的獨立解決問題的能力。 麵嚮未來: 本書的內容緊跟 Ruby 的發展趨勢,為你未來的編程學習打下堅實基礎。 掌握 Ruby 是一種能力,更是一種享受。它能讓你用更少的代碼完成更多的事情,讓你在編程過程中感受到創造的樂趣。這本書將是你踏上 Ruby 之旅的理想起點,助你成為一名更齣色的開發者,用代碼創造更美好的數字世界。讓我們一起,在 Ruby 的世界裏,釋放你的創造力!
作為一個對軟件開發充滿憧憬,但又常常被技術術語和復雜概念壓得喘不過氣來的“小白”,我一直在尋找一本能真正把我“拉進門”的書。《Ruby基礎教程 第4版》就是我近期發現的一塊“寶藏”。這本書並沒有讓我感到任何門檻,反而像一位耐心、友善的嚮導,帶領我一步步探索Ruby的奇妙世界。 本書的結構安排非常閤理,它循序漸進地引入 Ruby 的基本概念,從最基礎的“你好,世界!”開始,讓我有機會立刻體驗到編程的樂趣。作者並沒有急於拋齣大量枯燥的語法規則,而是用非常生動形象的語言,解釋瞭變量、數據類型、運算符等核心概念。我尤其喜歡作者在解釋過程中,經常使用類比,比如把變量比作可以儲存不同物品的“盒子”,把方法比作“執行某個任務的機器”,這樣的講解方式大大降低瞭我的理解難度。 在學習過程中,我發現本書最大的亮點在於其豐富的代碼示例。這些示例不僅僅是孤立的代碼片段,而是緊密圍繞講解的概念展開,並且作者還會對每一行代碼進行詳細的解釋,讓我清楚地知道每一條語句的作用。我嘗試著去修改這些示例,加入自己的想法,觀察運行結果,這種“邊學邊練”的方式讓我對知識的掌握更加牢固。 本書對於“對象”和“類”這兩個麵嚮對象編程的核心概念的講解,尤其令我印象深刻。我之前一直對這些概念感到模糊,覺得它們高深莫測。但通過《Ruby基礎教程 第4版》中一係列精心設計的例子,比如創建“汽車”對象,為它添加“顔色”和“速度”屬性,以及讓它能夠“啓動”和“加速”,我終於理解瞭封裝、繼承等概念的實際含義。這種從具體到抽象的學習過程,讓我感到豁然開朗。 總而言之,《Ruby基礎教程 第4版》是一本極其適閤初學者的 Ruby 入門教材。它以其清晰的結構、生動的講解、豐富的示例和對編程思維的培養,成功地吸引瞭我,並為我後續的學習打下瞭堅實的基礎。我強烈推薦給所有想要踏入 Ruby 編程世界的朋友們。