新聞中心
Ruby語(yǔ)言中對(duì)于數(shù)組的處理方式較之其他編程語(yǔ)言來(lái)說(shuō)還是比較簡(jiǎn)便的。那么,我們就先來(lái)一起了解一下Ruby輸出二維數(shù)組的相關(guān)技巧。#t#

10年的溫縣網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都營(yíng)銷(xiāo)網(wǎng)站建設(shè)的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整溫縣建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“溫縣網(wǎng)站設(shè)計(jì)”,“溫縣網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
用Ruby的pp()函數(shù)可以以很漂亮的方式輸出數(shù)組。不過(guò)美中不足的是會(huì)將二維數(shù)組顯示在一行上。我們希望它能夠以每行一個(gè)子數(shù)組的方式進(jìn)行輸出。
其實(shí)PP是一個(gè)挺不錯(cuò)的用于輸出對(duì)象的框架(雖說(shuō)好像是小日本寫(xiě)的)。要想實(shí)現(xiàn)上面Ruby輸出二維數(shù)組的效果,只需要在Array#pretty_print()函數(shù)的默認(rèn)實(shí)現(xiàn)中添加一行代碼就可以實(shí)現(xiàn)!代碼如下(文件名“pp_extension.rb”):
- # Outputs two-dimension
array like matrix- class Array
- def pretty_print(q)
- q.group(1, '[', ']') {
- q.seplist(self) {|v|
- q.current_group.break if v.is
_a?(Array) && !q.current_
group.first? # added by me- 7q.pp v
- }
- }
- end
- end
您一定以為我很了解PrettyPrint和PP的實(shí)現(xiàn)原理吧?其實(shí)不是的。我只是粗略的看了一下這兩個(gè)類(lèi)的源代碼(它們?cè)贑:\ruby\lib\ruby\1.8\),然后猜測(cè)它的實(shí)現(xiàn)方法是用group()函數(shù)對(duì)對(duì)象中的信息進(jìn)行分組,然后遞歸調(diào)用pp()函數(shù)輸出每組信息。
之后我Copy了Array#pretty_print()函數(shù)的默認(rèn)實(shí)現(xiàn),嘗試著稍作修改而已。所以我也沒(méi)有辦法為您詳細(xì)剖析PP的Ruby輸出二維數(shù)組實(shí)現(xiàn)方法了,希望這篇文章能夠給您帶來(lái)一些靈感,起到拋磚引玉的作用。也許以后有時(shí)間我會(huì)仔細(xì)的看一下它們的源代碼的。
PS:用修改后的pp()輸出三維數(shù)組也可以的,您可以試一下。
本文名稱(chēng):使用pp()實(shí)現(xiàn)Ruby輸出二維數(shù)組
網(wǎng)頁(yè)網(wǎng)址:http://www.dlmjj.cn/article/djhphgj.html


咨詢(xún)
建站咨詢(xún)
