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