Ngôn ngữ Rust có cách áp dụng hàm cho mỗi phần tử trong mảng/vectơ không. Tôi biết trong python có chức năng map()
thực hiện tác vụ này. Trong R có các hàm lapply()
, tapply()
và apply()
cũng thực hiện việc này. Tôi đã tự hỏi nếu có một cách được thiết lập để vector hóa một chức năng trong Rust?Rust có cách nào để áp dụng một hàm/phương thức cho từng phần tử trong một mảng hoặc véc-tơ không?
Rust có cách nào để áp dụng một hàm/phương thức cho từng phần tử trong một mảng hoặc véc-tơ không?
Trả lời
Có một vài sự tinh tế ở đây:
Chúng tôi có bản đồ, hoạt động trên Iterators. Vì vậy, bạn có thể:
some_vec.iter().map(|x| { })
Tuy nhiên, Iterator lười, vì vậy điều này sẽ không làm gì cả. Bạn có thể tack một .collect() vào cuối để tạo một vector mới với các phần tử mới, nếu đó là những gì bạn muốn.
Cách thông thường để làm điều gì đó mà không cần phân bổ là sử dụng một vòng lặp for:
for i in &vec {
Nếu bạn thực sự muốn các phong cách chức năng, bạn có thể sử dụng phương pháp forall trong itertools thùng.
Nói Steve, tôi chỉ tự hỏi liệu có sự khác biệt về hiệu suất giữa phương pháp tiếp cận vòng lặp/thu thập so với vòng lặp' for' hay không. Tôi biết trong python có một sự khác biệt hiệu suất quan trọng giữa các vòng lặp, danh sách hiểu và hàm 'map()'. Có bất kỳ hướng dẫn hiệu suất nào cho Rust về các vấn đề như thế này - chủ yếu là tính toán số không? – krishnab
cho vòng lặp là đường cho trình lặp trong Rust: http://doc.rust-lang.org/stable/std/iter/index.html#rust%27s-for-loop vì vậy không nên là :) –
- 1. Trong D, làm cách nào để áp dụng một hàm cho tất cả các phần tử trong một mảng?
- 2. Cách áp dụng lôgic HOẶC vào một mảng trong Excel
- 3. Làm thế nào để áp dụng một hàm cho mỗi phần tử của một cột mảng trong Postgres?
- 4. Làm cách nào để áp dụng nhiều kiểu XAML cho một phần tử?
- 5. Rails 3: nút radio cho từng phần tử trong một mảng
- 6. Làm cách nào để tạo một mảng trong C++ bằng cách sử dụng mới và khởi tạo từng phần tử?
- 7. Làm cách nào để gọi một phần tử trong một mảng có nhiều mảng?
- 8. Tôi có thể áp dụng nhiều hơn một lớp CSS3 cho một phần tử không?
- 9. Làm cách nào để áp dụng kiểu cho tất cả trẻ em của một phần tử
- 10. Cách áp dụng: di chuột đến một phần tử
- 11. javascript áp dụng một chức năng để mỗi phần tử trên mảng các đối tượng
- 12. Tại sao Áp dụng Phương thức AsEnumerable() cho một mảng?
- 13. Làm cách nào để đặt một mảng trong vùng văn bản, đặt từng phần tử trên một dòng riêng?
- 14. Có cách nào thanh lịch để chọn một phần tử trong JQuery nếu một phần tử không tồn tại?
- 15. Hiểu == áp dụng cho một mảng NumPy
- 16. Cách áp dụng hàm cho tất cả các phần tử trong mảng (trong lớp mẫu C++)
- 17. Làm cách nào để trao đổi các mục trong một vectơ, slice hoặc mảng trong Rust?
- 18. Tên "phần" đến từ đâu cho một toán tử infix được áp dụng một phần?
- 19. Không áp dụng một phần phương thức giao thức một phần
- 20. Cách dễ dàng để áp dụng hàm cho một mảng
- 21. lấy mảng KEYS cho từng phần tử dưới jsonarray
- 22. Áp dụng phương pháp cho từng yếu tố trong mảng/đếm
- 23. Có cách nào thành ngữ để trao đổi hai phần tử trong một mảng ô không?
- 24. Làm cách nào tôi có thể cắt từng phần tử của một chuỗi chuỗi có nhiều mảng?
- 25. Javascript cách hiển thị từng phần tử của mảng trên một dòng mới
- 26. Có thể random_shuffle một mảng các phần tử int không?
- 27. Làm thế nào để truyền một mảng và một phần tử đơn lẻ cho một phương thức nhiều đối số?
- 28. Có thể áp dụng một hàm chung cho các phần tử tuple không?
- 29. Làm cách nào để áp dụng itertools.product cho các phần tử của danh sách danh sách?
- 30. Làm cách nào để kiểm tra xem một phần tử có nằm trong một phần tử khác trong jQuery không?
Ở đây bạn truy cập: https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.map Bạn có thể sử dụng nó như: 'vec! [1, 2, 3] .into_iter() .map (| x | x * 2) .collect ::>() ' –
Adrian