Làm cách nào để khai báo chức năng riêng tư ở Fortran?Chức năng riêng tư ở Fortran
Trả lời
này sẽ chỉ làm việc với một mô-đun Fortran 90. Trong khai báo mô-đun của bạn, bạn có thể chỉ định giới hạn truy cập cho danh sách các biến và thủ tục sử dụng từ khóa "công khai" và "riêng tư". Tôi thường thấy hữu ích khi sử dụng từ khóa riêng của chính nó ban đầu, trong đó xác định rằng mọi thứ trong mô-đun là riêng tư trừ khi được đánh dấu công khai một cách rõ ràng.
Trong mẫu mã bên dưới, subroutine_1() và function_1() có thể truy cập từ bên ngoài mô-đun thông qua câu lệnh "sử dụng" cần thiết, nhưng bất kỳ biến/chương trình con/hàm khác sẽ là riêng tư.
module so_example
implicit none
private
public :: subroutine_1
public :: function_1
contains
! Implementation of subroutines and functions goes here
end module so_example
Tôi chưa bao giờ viết dòng FORTRAN, nhưng this thread about "Private module procedures" dường như là chủ đề, ít nhất tôi cũng hy vọng như vậy. Dường như có chứa câu trả lời, ít nhất.
jaredor Tóm lại:
Thuộc tính public/private tồn tại trong mô-đun trong Fortran 90 và sau đó. Fortran 77 và trước đó - bạn đã hết may mắn.
Private xxx, yyy, zzz
real function xxx (v)
...
end function xxx
integer function yyy()
...
end function yyy
subroutine zzz (a,b,c)
...
end subroutine zzz
...
other stuff that calls them
...
Nếu bạn sử dụng mô-đun, đây là cú pháp:
PUBLIC :: subname-1, funname-2, ...
PRIVATE :: subname-1, funname-2, ...
Tất cả các đối tượng được liệt kê trong PRIVATE sẽ không thể truy cập từ bên ngoài của các mô-đun và tất cả các tổ chức niêm yết ở nơi công cộng có thể được truy cập từ bên ngoài mô-đun. Tất cả các thực thể khác, theo mặc định, có thể được truy cập từ bên ngoài module.
MODULE Field
IMPLICIT NONE
Integer :: Dimen
PUBLIC :: Gravity
PRIVATE :: Electric, Magnetic
CONTAINS
INTEGER FUNCTION Gravity()
..........
END FUNCTION Gravity
REAL FUNCTION Electric()
..........
END FUNCTION
REAL FUNCTION Magnetic()
..........
END FUNCTION
..........
END MODULE Field
- 1. Chức năng riêng tư trừu tượng
- 2. Kiểm tra các chức năng riêng tư trong javascript
- 3. CodeIgniter - Chức năng riêng
- 4. Tôi có thể xác định nội dung cho một chức năng riêng tư ở đâu?
- 5. EUnit không kiểm tra chức năng riêng tư
- 6. Riêng tư chức năng và kiểm tra đơn vị Haskell
- 7. Chức năng thử nghiệm đơn vị riêng tư trong Android
- 8. chức năng ảo tư nhân ở có nguồn gốc lớp
- 9. Ghi đè các chức năng ảo công cộng với các chức năng riêng tư trong C++
- 10. Chức năng quá tải với Fortran
- 11. Nhắn tin riêng tư ở Django
- 12. Chức năng loại tài liệu tự động cho Fortran?
- 13. Chức năng riêng trong JavaScript
- 14. Gọi C chức năng/chương trình con trong mã Fortran
- 15. Quá tải chức năng loại giới hạn trong Fortran 2003
- 16. đối số tùy chọn trong các chức năng fortran
- 17. Hiển thị loại riêng tư với tính năng tự động: có thể hữu ích ở đâu?
- 18. 'này' trong các chức năng JavaScript riêng tư mà không cần hack?
- 19. Chức năng Toàn cầu và Địa phương và Riêng tư (Javascript)
- 20. Làm thế nào để kiểm tra chức năng tiện ích 'riêng tư' đơn vị trong nodejs
- 21. Tại sao Visual Studio's intellisense hiển thị các thành viên và chức năng riêng tư?
- 22. Truy cập các phương thức riêng tư từ các chức năng mô-đun trong Ruby
- 23. Làm cách nào để thêm chức năng riêng tư vào mô hình backbone.js?
- 24. C++ Riêng tư có thực sự riêng tư không?
- 25. PHP | Tại sao tôi nên sử dụng chức năng tĩnh tĩnh/riêng công cộng thay vì chức năng công cộng/riêng tư?
- 26. từ khóa riêng tư không có từ khóa riêng tư
- 27. Mảng dây ở Fortran 77
- 28. Quy ước mã hóa chức năng "riêng" của Python
- 29. Cách tạo URL riêng tư?
- 30. Tiện ích javascript riêng tư
Sự khiêm tốn dễ hiểu của bạn, bạn có thể tin tưởng hơn, nhưng bạn có thể dứt khoát hơn: Câu trả lời nằm trong chuỗi đó. Thuộc tính public/private tồn tại trong các module trong Fortran 90 và mới hơn. Fortran 77 và trước đó - bạn đã hết may mắn. – jaredor