Từ những gì tôi hiểu, các chuỗi trong Nim về cơ bản là chuỗi byte có thể thay đổi và chúng được sao chép khi gán.Những gì chính xác là chuỗi trong Nim?
Cho rằng, tôi cho rằng sizeof
sẽ cho tôi biết (như len
) số byte, nhưng thay vào đó nó luôn mang đến cho 8
trên máy tính 64-bit của tôi, vì vậy nó có vẻ là giữ một con trỏ.
Cho rằng, tôi có câu hỏi sau đây ...
động lực đằng sau bản sao trên phân là gì? Có phải vì họ có thể thay đổi không?
Có bao giờ một thời gian khi nó không được sao chép khi được chỉ định không? (Tôi cho rằng các thông số chức năng không
var
không sao chép. Bất kỳ điều gì khác?)Chúng có được tối ưu hóa sao cho chúng thực sự được sao chép nếu/khi chúng bị đột biến?
Có sự khác biệt đáng kể giữa chuỗi và chuỗi hoặc câu trả lời cho các câu hỏi trên có thể áp dụng đồng đều cho tất cả các chuỗi không?
Bất kỳ điều gì khác đáng chú ý chung?
Cảm ơn bạn!
cho đầy đủ, cuộc sống định nghĩa chuỗi nim [trên github] (https: //github.com/Araq/Nim/blob/master/lib/system.nim#L56) có thể giúp giải thích lý do tại sao nó báo cáo nội dung báo cáo. –
@ Mike'Pomax'Kamermans: Cảm ơn bạn đã liên kết, nhưng tôi không biết 'string * {.magic: String.}' Đang cố gắng nói cho tôi biết điều gì. ;-) –
yeah, không quá chắc chắn bản thân mình, chỉ cần figured nó có thể là thông tin tốt để có trong câu hỏi như là một dẫn có thể cho mọi người tốt hơn tại khám phá những gì lên hơn chúng tôi =) –