自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用pp()實(shí)現(xiàn)Ruby輸出二維數(shù)組

開(kāi)發(fā) 開(kāi)發(fā)工具
Ruby輸出二維數(shù)組可以通過(guò)pp()函數(shù)來(lái)實(shí)現(xiàn)。雖然方式比較簡(jiǎn)單,但是缺陷還是有的,就是二維數(shù)組只能顯示在一行中。

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

用Ruby的pp()函數(shù)可以以很漂亮的方式輸出數(shù)組。不過(guò)美中不足的是會(huì)將二維數(shù)組顯示在一行上。我們希望它能夠以每行一個(gè)子數(shù)組的方式進(jìn)行輸出。

其實(shí)PP是一個(gè)挺不錯(cuò)的用于輸出對(duì)象的框架(雖說(shuō)好像是小日本寫的)。要想實(shí)現(xiàn)上面Ruby輸出二維數(shù)組的效果,只需要在Array#pretty_print()函數(shù)的默認(rèn)實(shí)現(xiàn)中添加一行代碼就可以實(shí)現(xiàn)!代碼如下(文件名“pp_extension.rb”):

  1. # Outputs two-dimension 
    array like matrix  
  2. class Array  
  3. def pretty_print(q)  
  4. q.group(1, '[', ']') {  
  5. q.seplist(self) {|v|  
  6. q.current_group.break if v.is
    _a?(Array) && !q.current_
    group.first? # added by me  
  7. 7q.pp v  
  8. }  
  9. }  
  10. end  
  11. end 

您一定以為我很了解PrettyPrint和PP的實(shí)現(xiàn)原理吧?其實(shí)不是的。我只是粗略的看了一下這兩個(gè)類的源代碼(它們?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ù)組也可以的,您可以試一下。

責(zé)任編輯:曹凱 來(lái)源: 博客園
相關(guān)推薦

2009-11-16 17:41:41

PHP二維數(shù)組

2009-11-17 16:09:04

PHP二維數(shù)組排序

2021-01-15 08:19:26

二維數(shù)組LeetCode

2009-11-16 17:07:58

PHP二維數(shù)組

2010-07-19 13:06:13

Perl二維數(shù)組

2009-09-16 17:29:10

Linq查詢二維數(shù)組

2010-07-13 15:15:49

Perl二維數(shù)組

2009-08-07 10:12:09

C#二維數(shù)組

2022-01-19 11:34:01

語(yǔ)言malloc()二維數(shù)組

2009-11-17 09:46:31

PHP二維數(shù)組賦值

2021-02-20 20:27:44

數(shù)組前綴性能

2010-03-05 14:05:02

Python二維數(shù)組

2010-01-14 17:58:41

C++語(yǔ)言

2009-11-25 11:14:12

PHP二維數(shù)組賦值

2009-09-02 10:23:52

C#動(dòng)態(tài)二維數(shù)組

2009-09-18 11:33:37

C#二維數(shù)組初始化

2024-06-26 08:46:45

2010-07-19 13:17:12

Perl二維數(shù)組

2010-02-04 16:26:54

C++二維數(shù)組new

2009-11-24 17:25:00

PHP二維數(shù)組排序
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)