Diff
Diff (So sánh khác biệt)
Thao tác so sánh xác định các khác biệt cụ thể giữa hai phiên bản văn bản, mã hoặc dữ liệu, hiển thị chính xác những gì đã được thêm, xóa hoặc thay đổi giữa chúng.
Chi tiết kỹ thuật
Thuật toán diff cổ điển (Hunt-McIlroy, sau đó là Myers) tính toán dãy con chung dài nhất (LCS) và trình bày các khác biệt dưới dạng kịch bản chỉnh sửa tối thiểu. Các định dạng đầu ra bao gồm unified diff (ngữ cảnh với dòng +/-, được Git sử dụng), song song, và diff cấp từ hoặc cấp ký tự cho độ chi tiết cao hơn. Diff ba chiều so sánh phiên bản gốc với hai phiên bản đã sửa đổi để cho phép hợp nhất tự động. Trong các công cụ web, thư viện như diff-match-patch hoặc jsdiff thực hiện so sánh văn bản phía máy khách với độ chi tiết có thể tùy chỉnh.
Ví dụ
```javascript
// Diff: file processing example
const file = document.getElementById('fileInput').files[0];
const reader = new FileReader();
reader.onload = (e) => {
const data = e.target.result;
console.log(`Loaded: ${file.name} (${file.size} bytes)`);
};
reader.readAsArrayBuffer(file);
```