¨ 解釋執(zhí)行:Python,Ruby,交互性很好; ¨ 編譯執(zhí)行:Pascal, C,速度較快。 n 本地執(zhí)行,如C,C++; n 虛擬機執(zhí)行,如Java, C#。
¨ 動態(tài)語言,如JavaScript,Ruby; ¨ 靜態(tài)語言,如C++,Java。 |
語言 ¨ 語法 關(guān)鍵字 ¨ 語義 ¨ 語用
|
松本行弘(Matz) 1993
Ruby [`ru:bi](紅寶石)
Ruby 吸取了 perl 的正則表達式, python 的簡單性可讀性,smalltalk 的純面向?qū)ο笳Z法和單繼承,LISP 的無窮嵌套的語法,Java的線程… |
Page 14 上手
XP
Cmd
C:\Documents and Settings\Administrator>ruby -v ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32] |
第一種方式:ruby命令
C:\Documents and Settings\Administrator>ruby -e 'print "hello world"' hello world |
ruby 運行ruby;
-e 執(zhí)行后面的ruby腳本程序;
print 打印顯示;
hello,world 要輸出的內(nèi)容。
第二種方式:irb交互執(zhí)行
C:\Documents and Settings\Administrator>irb irb(main):001:0> print "hello world" hello world=> nil irb(main):002:0> exit |
exit: 退出irb交互式環(huán)境
第三種方式:創(chuàng)建ruby腳本
C:\Documents and Settings\Administrator>copy con helloworld.rb print "hello world" print "3*7=",3*7 ^Z 已復(fù)制 1 個文件。
C:\Documents and Settings\Administrator>helloworld.rb hello world3*7=21 |
Page 17 IDE
¨ Eclipse + RDT(Ruby Development Tools)
¨ FreeRIDE+SciTE
1.在SciTE編輯Ruby代碼;
2.保存為 .rb文件;
3.菜單欄,工具->運行或者F5;
Page 18 語法
1. 注釋
單行注釋 # 多行注釋 =begin =end
Ruby的內(nèi)嵌文檔(Rdoc)注釋,用ri命令從源文件中產(chǎn)生文檔。
Rdoc內(nèi)嵌在ruby代碼之中的,可以轉(zhuǎn)換為html文檔。
ri命令,用來查看函數(shù)說明、類說明。函數(shù)說明、類說明應(yīng)該放置在=begin和=end之中。注意:“=begin”一定要寫在行首,也就是說,這一行前六個字符是“=begin”,之前不允許有空格。
2. 分行
用分號;表示語句結(jié)束。
一行多個語句,用分號隔開,最后一個語句,分號可以省略,換行符表示一行結(jié)束。
語句太長,可以在行末用符號 \ ,表示續(xù)行。
3. 分隔符
名稱 |
符號 |
用途 |
分號 |
; |
用來分隔一行中的多個語句 |
圓括號 |
( ) |
提高優(yōu)先級;定義方法時容納參數(shù)列表 |
空格 |
|
分隔字符;在可省略()的地方,代替() |
逗號 |
, |
隔開多個參數(shù) |
點 |
. |
將對象與它的方法隔開 |
緊連的兩個冒號 |
:: |
域作用符,將模塊(類)與它的常量隔開 |
4. 關(guān)鍵字
Ruby中的關(guān)鍵字如下:
模塊定義: |
module |
異常處理: |
rescue,ensure |
類定義: |
class |
對象引用: |
super,self |
方法定義: |
def,undef |
塊的起始: |
begin/end |
檢查類型: |
defined? |
嵌入模塊: |
BEGIN,END |
邏輯值和空值: |
true,false,nil |
文件相關(guān): |
__FILE__,__LINE__ |
邏輯判斷: |
not,and,or |
方法返回: |
return |
條件語句: |
if,then,else,elsif,case,when,unless |
別名: |
alias |
循環(huán)語句: |
for,in,while,until,next,break,do,redo,retry,yield |
BEGIN模塊相當(dāng)于C語言中的宏,END模塊用來作一些收尾工作。有了
require,include,應(yīng)該取消BEGIN和END的語法定義。
5. 運算符
6. 標(biāo)識名:
常量,變量,方法,類和模塊;
大小寫敏感;
標(biāo)識名第一個字符表明這個名字的用法。
局部變量、方法參數(shù)和方法名稱 |
以小寫字母開頭或者下劃線開頭; |
類名、模塊名和常量 |
用大寫字母開頭。 |
全局變量 |
以美元符為前綴$; |
實例變量 |
以@開頭; |
類變量 |
用@@開頭; |
詞首字母后面可以是字母、數(shù)字和下劃線的任意組合;
@后面不可以直接跟數(shù)字。
Ruby程序代碼用7位ACSII碼來表示,通過語言擴展來支持 EUC,SJIS或UTF-8等8位編碼系統(tǒng)。Ruby2.0版本將支持16位的Unicode編碼。
7. 類庫
可以直接使用:
i) 關(guān)鍵字;
ii) require或者include包含的類庫中的類、方法;
iii)從父類中繼承得到的方法。
puts |
每個參數(shù)后自動換行 |
|
不自動換行,換行用”\n” |
printf |
按格式輸出,不自動換行 |
gets |
從鍵盤或文件中讀入數(shù)據(jù) |
C:\Documents and Settings\Administrator>ruby -e 'puts "hello","world"' hello world |
C:\Documents and Settings\Administrator>ruby -e 'printf "number:%f",3.2' number:3.200000 |
注意:printf的參數(shù)之間用逗號隔開。
C:\Documents and Settings\Administrator>ruby -e ' printf "number:%4.3f,string %s ",1.5,"hello world"' number:1.500,string hello world |
8. 數(shù)據(jù)類型
類型 |
分類 |
說明及示例 |
數(shù)字 |
整數(shù)型 |
0 八進制, 0x 十六進制,0b 二進制 |
浮點型 | ||
字符串 |
單引號 ‘' |
|
雙引號 “” |
| |
數(shù)組 |
從0開始,每個元素可以不同類型 |
例 [2.4,"thank you",[a,b,c],78] |
區(qū)間 |
1..5 |
1,2,3,4,5 |
1…5 |
1,2,3,4 | |
正則表達式 |
|
|
9. 賦值運算
交換變量a,b的值:
a,b=b,a;
注意括號:
a = (b = 1 + 2) + 3 #a=6 ,b=3
逗號,從左往右運算,分別賦給a,b,c
x = 0 #x=0
a,b,c = x, (x+1), (x+2) #a=0 ,b=1,c=2
10. 條件運算
== |
等于 |
!= |
不等于 |
eql? |
比較兩個對象的值、類型是否相等 |
equal? |
比較兩個對象在內(nèi)存中地址是否相同 |
|
小于 |
> |
大于 |
= |
小于等于 |
>= |
大于等于 |
=~ |
匹配正則表達式 |
!~ |
斷言不匹配正則表達式 |
=== |
右邊的對象在左邊區(qū)間內(nèi) puts(0..9)===3.14 #true puts('a'..'f')==='c' # true |
=> |
比較兩個對象大小,大于1,等于0,小于-1. |
Ruby里,nil和false為假,其它都為真。
11. 判斷語句
|
if then end |
( ) if | |
|
if elsif else end |
|
unless
|
if not
| |
|
case when when else end |
12. 循環(huán)語句
單行while |
(語句1;語句2;語句…)while條件 |
多行while |
while 條件 語句,語句 end |
until直到 |
until 跳出循環(huán)條件 語句 until 條件=while not (條件) |
for…in循環(huán) |
for 變量 in 對象 語句1; 語句2 ; 語句… end |
break,nextredoretry
在循環(huán)體內(nèi),如果遇到:
break |
跳出當(dāng)層循環(huán); |
next |
忽略本次循環(huán)的剩余部分,開始下一次的循環(huán); |
redo |
重新開始循環(huán),還是從這一次開始; |
retry |
重頭開始這個循環(huán)體。 |
times , upto , downto , each ,step
語句 |
運行結(jié)果 |
3.times { print "Hi!" } |
#Hi!Hi!Hi! |
1.upto(9) {|i| print i if i7 } |
#123456 |
9.downto(1){|i| print i if i7 } |
#654321 |
(1..9).each {|i| print i if i7} |
#123456 |
0.step(11,3) {|i| print i } |
#0369 |
C:\Documents and Settings\Administrator>irb irb(main):001:0> 1.upto(9){|i| print i if i7} 123456=> 1 irb(main):002:0> 9.downto(1){|i|print i if i7} 654321=> 9 irb(main):003:0> (1..9).each {|i| print i if i7} 123456=> 1..9 irb(main):004:0> 0.step(11,3) {|i| print i} 0369=> 0 |
13. 異常
Java
try…catch…finally…throw
Ruby
begin/end…rescue…ensure…raise
retry可以用在rescue中。可以只用rescue或ensure,兩者都使用時,rescue必須在ensure前。
14. 線程
標(biāo)簽:克拉瑪依 內(nèi)江 棗莊 南昌 西雙版納 甘孜 大慶 河池
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Terry七月Ruby讀書筆記(比較詳細)第1/4頁》,本文關(guān)鍵詞 Terry,七月,Ruby,讀書,筆記,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。