tôi đã viết một ứng dụng nhỏ nhanh chóng lấy tệp cơ sở của mã với một số từ khóa, tệp thay thế cho từ khóa và xuất tệp mới với từ khóa được thay thế.Ruby 1.9 Array.to_s hoạt động khác nhau?
Khi tôi đang sử dụng Ruby 1.8, kết quả đầu ra của tôi sẽ ổn. Bây giờ khi sử dụng Ruby 1.9, mã thay thế của tôi có các ký tự dòng mới trong đó thay vì các dòng cấp dữ liệu.
Ví dụ, tôi thấy cái gì đó như:
["\r\nDim RunningNormal_1 As Boolean", "\r\nDim RunningNormal_2 As Boolean", "\r\nDim RunningNormal_3 As Boolean"]
thay vì:
Dim RunningNormal_1 As Boolean
Dim RunningNormal_2 As Boolean
Dim RunningNormal_3 As Boolean
tôi sử dụng một hash của thay thế { "KEYWORD" => [ "1", "2", "3"]} và một mảng các dòng được thay thế.
tôi sử dụng khối này để hoàn tất việc thay thế:
resultingLibs.each do |x|
libraryString.sub!(/(<REPEAT>(.*?)<\/REPEAT>)/im) do |match|
x.each do |individual|
individual.to_s
end
end
end
#for each resulting group of the repeatable pattern,
#
#Write out the resulting libs to a combined string
linh cảm của tôi là tôi in ra các mảng thay vì chuỗi trong mảng. Mọi đề xuất về bản sửa lỗi. Khi tôi gỡ lỗi và in chuỗi thay thế của tôi bằng cách sử dụng đặt, đầu ra có vẻ chính xác. Khi tôi sử dụng phương pháp to_s (đó là cách ứng dụng của tôi ghi đầu ra vào tệp đầu ra), đầu ra của tôi có vẻ sai.
Sửa lỗi sẽ tốt đẹp, nhưng điều tôi thực sự muốn biết là những gì đã thay đổi giữa Ruby 1.8 và 1.9 gây ra hành vi này. Phương pháp to_s có thay đổi bằng cách nào đó trong Ruby 1.9 không?
* tôi thiếu kinh nghiệm trong Ruby
mẫu mã sẽ được tốt đẹp – orip
tôi thêm mã nguồn mà tôi hy vọng là có liên quan. – jrsconfitto
+1. Tôi đã sử dụng Ruby 1.8 và 1.9 một chút công bằng, nhưng không bao giờ biết về sự khác biệt này! –