解析.NET程序員 Ruby核心語(yǔ)法入門(4)_.Net教程
推薦:關(guān)于URL的傳遞字符串問題的研究前幾天在調(diào)程序的時(shí)候遇到了比較郁悶的問題,我用URL從一個(gè)頁(yè)面?zhèn)鬟f字符串到另一個(gè)頁(yè)面的時(shí),出現(xiàn)了個(gè)奇怪的問題,我要傳遞的字符串是“DK51 700中繼站”;可是另一個(gè)頁(yè)面接收到
類
Ruby中的所有事物都是對(duì)象,所有對(duì)象都是類的實(shí)例,為了探索類是個(gè)什么東西,在它上面調(diào)用類函數(shù):
5.class
=> Fixnum
(2 ** 96).class
=> Bignum
7.5.class
=> Float
(1..10).class
=> Range
"foo".class
=> String
/^foo[a-e]$/.class
=> Regexp
:foo.class
=> Symbol
[].class
=> Array
{}.class
=> Hash
塊和閉包
雖然這與.NET 1.X中的事件處理程序類似,但當(dāng)你想處理它們時(shí)還是必須要定義完整的類函數(shù)來(lái)連接這些事件,這就導(dǎo)致需要?jiǎng)?chuàng)建大量的類函數(shù),因?yàn)榭蚣苄枰?/p>
.NET 2.0引入了匿名委派的概念,它們起的作用與Ruby中的塊類似,如:
irb(main):001:0> h = {:foo=>'bar', :hi=>'there'}
=> {:foo=>"bar", :hi=>"there"}
irb(main):002:0> h.each_key {|k| puts k}
foo
hi
=> {:foo=>"bar", :hi=>"there"}
irb(main):003:0> h.each {|k,v| puts "#{k}: #{v}"}
foo: bar
hi: there
=> {:foo=>"bar", :hi=>"there"}
正如你所看到的,Ruby中塊的語(yǔ)法是相當(dāng)簡(jiǎn)潔的:通常使用一對(duì)大括號(hào)打開塊和關(guān)閉塊,使用|x,y|語(yǔ)法標(biāo)出傳遞給塊的變量。
Ruby中的塊和閉包類似,正如.NET 2.0中的匿名委派,這意味著它們有權(quán)訪問它們封裝作用域的值,即使那個(gè)作用域退出后也可以訪問。下面是一個(gè)將幾個(gè)值相乘的閉包示例:
irb(main):004:0> n = [5, 6, 10]
=> [5, 6, 10]
irb(main):005:0> t = 1
=> 1
irb(main):006:0> n.each { |i| t *= i }
=> [5, 6, 10]
irb(main):007:0> t
=> 300
你甚至可以將引用存儲(chǔ)在塊中,方便以后使用,如:
irb(main):008:0> t = 1
=> 1
irb(main):009:0> f = lambda { |i| t *= i }
=> # 函數(shù)Ruby中函數(shù)的定義比.NET簡(jiǎn)單多了,因?yàn)椴恍枰付愋停纾?/p>
irb(main):001:0> def greet(name)
irb(main):002:1> puts "Hello, #{name}!"
irb(main):003:1> end
=> nil
irb(main):004:0> greet "Reader"
Hello, Reader!
=> nil
irb(main):005:0> greet 42
Hello, 42!
=> nil
分享:.NET Framework 3.5 SP1正式版微軟今天發(fā)布了.NET Framework 3.5第一個(gè)SP服務(wù)包的最終版.這是一個(gè)累積更新,包含很多基于.NET Framework 2.0、3.0和3.5不斷生成的新功能,此外還包括.NET Framework 2.0 SP2和.NET Framewo
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無(wú)刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過(guò)程實(shí)現(xiàn)分頁(yè)示例代碼
- 相關(guān)鏈接:
- 教程說(shuō)明:
.Net教程-解析.NET程序員 Ruby核心語(yǔ)法入門(4)。