2016-02-04 18 views

Trả lời

29

Box::new chỉ là một chức năng, giống như bất kỳ chức năng nào khác. Nó không phải là đặc biệt theo bất kỳ cách nào. Đó là grubby và mùi mờ nhạt của rất gần-to-the-hết hạn ngày pho mát.

box là phép thuật và tạo nên những hình ảnh nền tảng và ước mơ của những đứa trẻ nhỏ. Nó được mặc quần áo tốt nhất, đẹp nhất và mang theo nó mùi hương mờ nhạt của thông tươi cắt.

Khi bạn thực hiện Box::new(e), bởi vì nó là một hàm, e phải được đánh giá và xây dựng hoàn toàn trước nó có thể bắt đầu cuộc gọi. Nếu điều này có nghĩa là phân bổ và điền vào cấu trúc 500kB trên ngăn xếp, thì nó phải phân bổ và lấp đầy cấu trúc 500kB trên ngăn xếp, và sau đó chuyển đến Box::new, trong đó chỉ sau đó có thể phân bổ không gian trên heap (có thể không thành công), và sau đó sao chép 500kB đó vào heap.

Khi bạn thực hiện box e, bởi vì nó là tuyệt vời giống như một làn gió mát vào một ngày hè nóng bức, trình biên dịch có thể sắp xếp lại mọi thứ như vậy mà nó bắt đầu bằng cách phân bổ các 500KB trên heap, và sau đó điền cấu trúc 500KB trực tiếp trên heap. Và sau đó nó được thực hiện. Không sao chép thêm, không nhai qua không gian ngăn xếp. Không có nỗ lực lãng phí nếu điều đó "phân bổ trên heap" điều không làm việc ra ngoài.

box là cuộc sống, box là tình yêu; tất cả mưa đá box!

(Và có, bằng văn bản, nó vẫn không ổn định có nghĩa là bạn cần một trình biên dịch hàng đêm để bask trong rạng rỡ của nó. Nhưng sớm, bình minh sẽ đến. Get it? Dawn? Nightly? ... I ' ll hiển thị bản thân mình ...)

+0

Không phải từ khóa 'hộp' phải bao gồm phân bổ tùy chỉnh (ví dụ: phân bổ thứ gì đó * khác * so với' Hộp')? Hay là nó được thay thế bởi vị trí '<-'? –

+1

'box' sẽ hỗ trợ những thứ khác ngoài' Hộp' (* ví dụ * 'Rc',' Arc', * vv *) thông qua suy luận. '<-' là cú pháp tạm thời hiện tại cho * vị trí *, có liên quan, nhưng khác nhau:' hộp' tạo một vị trí mới để đặt một giá trị và sau đó đặt nó vào đó, '<-' đặt một giá trị trong * hiện tại * nơi (như, nói, vào cuối một vectơ). –

+1

Tôi thích mọi phần của câu trả lời này - tôi cũng học được điều gì đó. –

Các vấn đề liên quan