Tôi đang viết một băm Ruby vào một tập tin bằng YAML.Tại sao chuỗi bắt đầu bằng khoảng trắng được chuyển đổi bằng:! 'với Ruby/YAML
File.open(output_file, "w") {|file| file.puts YAML::dump(final)}
Hàm băm chứa chuỗi là khóa và nổi dưới dạng giá trị.
Khi chuỗi của tôi chỉ chứa thư họ đang outputted như vậy trong file file:
abc: 1.0
bcd: 1.0
cde: 1.0
Khi một chuỗi bắt đầu với một không gian nó được xuất ra như vậy:
! ' ab': 1.0
Khi tôi đọc các tập tin trở lại trong một lần nữa tất cả mọi thứ là ok, nhưng tôi muốn biết tại sao điều này xảy ra và những gì nó có nghĩa là.
Tôi đã tìm kiếm tài liệu YAML và nói rằng một dấu chấm than đơn được sử dụng để biểu diễn các kiểu dữ liệu cục bộ.
Tại sao điều này xảy ra trên chuỗi bắt đầu bằng dấu cách?
Tôi nghĩ nó cần chuỗi là trong dấu ngoặc kép để xác nhận không gian là một phần của chuỗi. Tôi cũng đã kiểm tra thông số kỹ thuật hơn và tìm thấy trong phần: "Ví dụ 7.8. Các phím ẩn được trích dẫn một lần" đề cập đến: "Tất cả ký tự dấu cách trắng ở đầu và cuối được loại trừ khỏi nội dung.". Tôi không chắc chắn, nhưng tôi nghĩ rằng nó có thể cần phải sử dụng! thế nào để ngăn không gian trắng bị xóa? – Gilles
Khoảng trắng đầu và cuối nó đề cập đến là trước và sau dấu ngoặc kép. Có thể thấy rằng '!' Không cần thiết bằng cách chỉnh sửa nó, và tải lại yaml, tải chính xác như nhau mà không có '!' –