Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何使用Aweasome_print为两组之间的差异着色?_Ruby_Set_Awesomeprint - Fatal编程技术网

Ruby 如何使用Aweasome_print为两组之间的差异着色?

Ruby 如何使用Aweasome_print为两组之间的差异着色?,ruby,set,awesomeprint,Ruby,Set,Awesomeprint,我正在使用awesome_print gem进行设置差异并打印差异: ap (a | b ) - (a & b) 这将打印出两个不同的项目 有没有办法突出或着色两者之间的差异 我看不出你怎么能做你想做的事。正如您可能知道的,awesomeprint允许您指定不同对象(数组、哈希、字符串等)的颜色。最棒的打印文档是 假设您希望打印一个包含符号:cat和字符串“dog”的集合,其中集合“blue”、“purplish”和“dog”为绿色。您可以按如下操作(看起来数组的颜色应用于集合,这很

我正在使用awesome_print gem进行设置差异并打印差异:

 ap (a | b ) - (a & b)
这将打印出两个不同的项目


有没有办法突出或着色两者之间的差异

我看不出你怎么能做你想做的事。正如您可能知道的,awesomeprint允许您指定不同对象(数组、哈希、字符串等)的颜色。最棒的打印文档是

假设您希望打印一个包含符号:cat和字符串“dog”的集合,其中集合“blue”、“purplish”和“dog”为绿色。您可以按如下操作(看起来数组的颜色应用于集合,这很有意义):

该集合将显示如下:

set.each { |e| ap e, options = { color: { string: color_map(e) } } }

但是,当这两个元素属于同一类时,最好是分别打印它们,方法是分别调用
ap

set = ['cat', 'dog'].to_set
set.each_with_index { |e,i|
  ap e, options = { color: { string: i.zero? ? :greenish : :red } } }
其中显示:

如果要为
a
b
的每个元素指定特定颜色,您可能需要执行以下操作:

set.each { |e| ap e, options = { color: { string: color_map(e) } } }
其中,
color\u map
是您要编写的一种方法


您可能需要首先将
JSON
对象转换为字符串(如果它还不是字符串——我不熟悉
JSON

你是说
a
b
是这样的
(a | b)-(a&b)
是一个包含两个对象的集合,你希望这两个对象以不同的颜色显示吗?
a
b
的元素类别是什么?是的,它是一个包含两个对象的集合,我想对两个对象之间的差异进行着色。a和b是JSON blob。