Diff
更多信息和选项
- Diff 可为以下类型的表达式给出结果:
-
lists {…} 返回两个列表之间的差异 text "text", File["fname.txt"] 返回两段文字之间单个字符、单词或行的差异 biomolecular sequences BioSequence[…] 返回两个生物分子序列之间字母的差异 cells Cell[…], CellObject[…] 返回两个单元之间的内容、样式和选项的差异 notebooks Notebook[…], NotebookObject[…], File["fname.nb"] 返回两个笔记本之间的单元和选项的差异 - Diff 返回一个 DiffObject.
- 在比较元素序列时,Diff 使用 SequenceAlignment.
- Diff 支持 SequenceAlignment 的所有选项,并添加了以下选项:
-
DiffAlignmentMethod Automatic 如何对齐 DiffGranularity Automatic 差异的粒度 DiffIgnore {} 应忽略的数据类型列表 DiffIncludeMatches Automatic 是否在生成的 DiffObject 中包含匹配数据 DiffInputFunction Identity 对 diff 输入进行预处理的函数 - 可用以下选项控制 Diff 输出的显示:
-
Alignment {Automatic, Automatic} 如何在显示区域中对齐 Appearance Automatic diff 结果的整体外观 AppearanceElements Automatic 将 diff 结果中的哪些元素显示出来 DiffStyle < > diff 的基本样式指定 ImageSize Automatic diff 的整体图像大小 ImageSizeAction Automatic 如果内容大小与图像大小不匹配该怎么办 Scrollbars False 是否包含滚动条 ScrollPosition {0,0} 如果可以滚动,给出 scrollposition - 在比较文本时,DiffGranularity 可被设置为 "Lines"、"Words" 或 "Characters",以将差异相应地编码到生成的 DiffObject 中. 默认情况下,如果比较两个字符串,将给出“ "Characters" 差异. 如果其中一个对象是文本文件,将给出 "Lines" 差异.
- 比较笔记本时,Diff 使用有关单元结构的额外知识来确定如何对齐两个笔记本的单元列表. 默认情况下,它会查看要比较的两个单元的 ExpressionUUID 以进行对齐. 如果要通过匹配单元之间的编辑距离来对齐单元列表,请使用 DiffAlignmentMethod"CellEditDistance".
- Diff[first,second] 等价于 Diff[first,second,"DiffObjectViewer"],它生成一个带有弹出菜单的查看器,允许你以交互方式选择不同的格式. format 取其他值时,会显示为给定的格式,但不能以交互方式更改以何种格式进行查看.
- format 取有些值时,会明确地显示 first 和 second,并通过内嵌注释表明两者之间的不同:
-
"CharacterAlignment" 对于字符串或生物序列,显示 first 和 second 的字符,彼此垂直对齐 "Combined" 显示 first 和 second 的组合版本 "Separate" 显示列表 {first,second} "SideBySide" 在并排对齐的列中显示 first 和 second 的元素 "Unified" 用一个列统一显示 first 和 second 的元素 - format 取有些值时,会使用抽象可视化来描述 first 和 second 之间变化的性质和程度:
-
"AlignmentChart" 显示一个图表,其中 first 和 second 的元素被描绘成由点组成的列,用线相连,以表明元素之间是如何对齐的 "ArrayPlot" 用阵列图显示元素的组合列表,并使用彩色阵列单元表明发生变化的地方 "SideBySideSummary" 将 first 和 second 分别显示为彩色阵列单元序列,并省略较长的、未改变的序列 "UnifiedSummary" 将 first 和 second 显示为彩色阵列单元的组合序列,并省略较长的、未改变的序列 - 其他可接受的 format 的值包括:
-
"Details" 给出每个修改的文字描述 "DiffObjectViewer" 在带有交互格式设置的面板中显示 "Report" 创建一个笔记本,其中包含两个笔记本表达式之间的差异报告 "SummaryBox" 显示为 DiffObject 摘要框 - 有些 format 值仅适用于表达式类型的子集.
- Diff[first,second][format] 等价于 Diff[first,second,format].
范例
打开所有单元关闭所有单元基本范例 (3)
选项 (15)
AppearanceElements (1)
从 AppearanceElements 中删除行号:
DiffAlignmentMethod (1)
当笔记本的一行中有多个单元被修改时,Diff 会尝试找到最佳对齐方式:
可通过 DiffAlignmentMethod"SequenceAlignment" 关闭该功能,将导致两个单元块被标记为一个更改,没有内部对齐:
DiffGranularity (1)
用 DiffGranularity 将字符串视为一系列的行:
DiffIgnore (2)
DiffIncludeMatches (3)
当有很多匹配的元素时,Diff 不会将它们全部包含在输出中:
用 DiffIncludeMatchesTrue 存储所有匹配的元素:
DiffIncludeMatches 也会对字符串的 DiffObject 产生影响:
显示 diff 通常会显示 DiffObject 中包含的所有匹配的项:
DiffInputFunction (2)
DiffStyle (1)
Scrollbars (1)
用 Scrollbars Automatic 在必要时自动显示滚动条:
属性和关系 (5)
查询 DiffObject 的可用属性列表:
查询 DiffObject 的可用属性列表:
改变 DiffObject 的初始格式:
给定两个列表,Diff 和 SequenceAlignment 将找到相同的变化,但以不同的方式表示它们:
从 DiffObject 中提取 SequenceAlignment:
文本
Wolfram Research (2024),Diff,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Diff.html.
CMS
Wolfram 语言. 2024. "Diff." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/Diff.html.
APA
Wolfram 语言. (2024). Diff. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Diff.html 年