国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

解析.NET程序員 Ruby核心語法入門_.Net教程

2024-07-10 12:51:20
字體:
來源:轉載
供稿:網友

推薦:關于URL的傳遞字符串問題的研究
前幾天在調程序的時候遇到了比較郁悶的問題,我用URL從一個頁面傳遞字符串到另一個頁面的時,出現了個奇怪的問題,我要傳遞的字符串是“DK51 700中繼站”;可是另一個頁面接收到

本文的目的是為了找出為什么.NET程序員都想學習并使用Ruby,并探索Ruby語言的核心語法。

微軟的IronRuby項目為Windows平臺帶來了強大的動態語言,Ruby編程語言是一個現代的,面向對象的基本語言,它的語法靈感來自Perl和Smalltalk語言,它是由一名日本人松本行弘(外號Matz)發明的,用他的話說,他是想發明一種語言比Perl更強大,同時比Python更面向對象的編程語言,在“http://www.linuxdevcenter.com/pub/a/linux/2001/11/29/ruby.html”有一篇對松本行弘專訪文章,大家可以去看看。于是Ruby被設計為非常貼近自然語言,作者的原意就是要減少編程時候的不必要的瑣碎時間,令編寫程序的人高興,他于1996年發布了1.0版本。

這么多年來,Ruby一直鮮為人知,但它的功能已經遠遠超出了最初設計時的想法:以最簡化的方法操作數據和環境。我第一次“玩”它還是在幾年前,那時我正在尋找一種替換處理自動管理任務的批處理文件的方法。

Ruby真正開始流行還得從一個來自伊利諾斯洲芝加哥市的名叫37signals小公司說起,它們發布了一個名叫Rails的Web應用程序框架,這個新的框架吸取了已經被證明是可靠的Model-View-Controller和ActiveRecord模型的經驗,并且添加了一些新的思想,如convention over configuration,導致它實現了太多的目標,幾乎不需要編碼了。

RubyCLR和IronRuby

在2006年早些時候,John Lam發布了一個開源項目,叫做RubyCLR,它在Ruby和.NET之間起到一個橋梁的作用,它允許用戶可以直接從Ruby訪問.NET平臺豐富的資源,甚至將Ruby對象都暴露給CLR了,這個項目非常有雄心,但它沒有打算將Ruby向.NET靠攏,而是打算讓這兩個世界相互對話,你仍然需要在你的機器上按照Ruby運行時環境。

RubyCLR項目為人們理解如何將Ruby和.NET和諧地溶合到一起邁出了關鍵的第一步,John的工作沒有引起人們的注意,2006年末,他在他的博客上宣布加入微軟新成立的動態語言運行時環境(DLR)團隊,在John宣布前幾個月,微軟發布了IronPython的1.0版本,它是Python語言在.NET框架上一個新的實現,動態語言運行時環境在IronPython上工作,它在.NET框架構建了一個運行環境,允許動態語言進入.NET。

John和他的團隊在2007年的MIX大會上宣布了IronRuby,可能真正讓人吃驚的是IronRuby項目本身是微軟的第一個真正意義上的開源.NET語言,不僅可以得到源代碼,而且還可以獲取來自社區的貢獻。

IronRuby仍然處于發展階段,然而偶然也會刪掉已經可以利用的東西,這些東西通常是其它項目的一部分,如最近發布的Silverlight 2.0 Beta 2,這些后續的項目也放在源代碼樹中了,并且也有相應的郵件列表。

為什么要學習Ruby?

我最喜歡的一本書叫做《程序員實務:從熟練工到大師》【英文名是《The Pragmatic Programmer: From Journeyman to Master》】,該書的作者鼓勵程序員每年學習一門新的編程語言,對于我而言,當我學習了Ruby語言后,大大地改變了我的專業范圍。

Ruby是一門完全面向對象的語言,這意味著在系統中每一樣打交道的東西都是對象,包括直接的值,如數字,即使是類,也是由新創建的對象實例組成的模板。

因為Ruby是一個動態語言,你會發現類型已經變得不太重要了,當一個類函數以參數形式獲取到一個對象時,不需要指定對象需要的類型。實際上,Ruby沒有編譯器,因此,可能直到傳遞給類函數的對象不滿足方法的需要時,你才會發現這一點。

如果你象我幾年前那樣,你也許會發現這個概念讓你不安,如果沒有編譯器,那么你可能要盡可能最快地在運行前就了解代碼中的錯誤,而不用等到運行時才知道。如果你還是習慣于讓編譯器告訴你錯誤,那你就不用選擇Ruby了。
正是由于以前編譯器能夠報告錯誤,如類型不匹配,當你編寫一個類函數時,你可能希望“這里的對象必須能夠做到foo和bar”,然后創建一個接口叫做IFooBar,看起來這是一個不錯的解決方案,但當你想使用其它的在IfooBar之前創建的類時(特別是那些來自框架的類型),你就會失敗了。

作者提醒:IronRuby還沒有成為主流的工具,你可以使用Ruby的標準版本進行學習,如果你想實驗后面的例子,可以從http://rubyinstaller.rubyforge.org/下載。

Ruby示例

學習Ruby或一門新的編程語言最好的方法就是多練習,研究它的交互接口,大多數動態語言都有交互提示符,稱之為讀-執行-打印環(即REPL,Read-Execute-Print Loop),Ruby中的REPL程序叫做irb(即交互式Ruby,interactive Ruby)。

當你執行irb程序時,你會看到一個irb提示符,如:

C:/Users/Brad> irb
irb(main):001:0>

當你在irb提示符后敲入命令時,Ruby解釋程序就會評估它們,并將結果輸出到你屏幕上,與irb類似的REPL是學習一門語言的優秀方法:每次一條語句。

下面對irb做一個簡單的介紹,在irb提示符后,敲入5 2,并回車,告訴Ruby計算這個表達式的值:

irb(main):001:0> 5 2
=> 7

irb(main):001:0>部分是irb的提示符,當你敲入5 2并回車時,irb就將結果輸出到屏幕上,如這里的=> 7,=> 是irb顯示輸出結果時使用的提示符。

如果Ruby認為你還沒有完成表達式的書寫,它允許你繼續換行書寫,如當你敲入5 2 時就按了回車,Ruby認為你還有一部分沒有輸入完畢,它會繼續讓你在下一行輸入,如:

irb(main):002:0> 5 2
irb(main):003:0* 13
=> 20

第二行的提示符變為星號(*)了,而不是“>”,這樣你就知道你在完成前面沒有完成的表達式。

分享:.NET Framework 3.5 SP1正式版
微軟今天發布了.NET Framework 3.5第一個SP服務包的最終版.這是一個累積更新,包含很多基于.NET Framework 2.0、3.0和3.5不斷生成的新功能,此外還包括.NET Framework 2.0 SP2和.NET Framewo

共7頁上一頁1234567下一頁
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 闻喜县| 东海县| 桦甸市| 尉氏县| 镇康县| 白朗县| 尼勒克县| 五原县| 邢台县| 纳雍县| 荃湾区| 丰城市| 浦东新区| 凤翔县| 洪泽县| 原阳县| 苏州市| 东山县| 营山县| 紫阳县| 平顺县| 宁陕县| 肥西县| 定襄县| 林芝县| 乡宁县| 龙陵县| 赣州市| 阿坝县| 沧州市| 金山区| 许昌县| 林芝县| 兴海县| 长岭县| 奉贤区| 简阳市| 突泉县| 梓潼县| 宁强县| 临泉县|