Peraturan keterlihatan pakej tegar Go bertujuan untuk memastikan permukaan API jelas dan jelas. Walau bagaimanapun, adalah tidak mungkin untuk merangkum butiran pelaksanaan dalam pakej yang lebih kecil tanpa mendedahkannya kepada pengguna luar apabila projek berkembang.
Satu penyelesaian kepada dilema ini telah dicadangkan dalam Go 1.4: memperkenalkan pakej "dalaman".
Pakej "dalaman" hanya boleh diimport oleh pakej lain dalam tempoh yang sama pokok. Peraturan ini bertujuan untuk mewujudkan pemisahan yang jelas antara pakej awam dan dalaman, menghalang pendedahan tidak sengaja butiran pelaksanaan dalaman.
Percubaan untuk mengimport pakej dalaman dari luar pepohon induknya mengakibatkan ralat:
import ( "runtime/internal/atomic" "runtime/internal/sys" )
Ralat:
mengimport masa jalan/dalaman/atom: penggunaan pakej dalaman bukan dibenarkan
Persoalan menggunakan fungsi dalaman dalam pakej utama timbul daripada keinginan untuk memastikan butiran pelaksanaan diasingkan. Malangnya, ini bukan kes penggunaan yang dimaksudkan untuk pakej dalaman.
Merangkum butiran pelaksanaan dalam pakej dalaman tidak praktikal dalam Go. Sebaliknya, pertimbangkan untuk memfaktorkan semula pangkalan kod anda ke dalam modul yang berbeza dengan antara muka awam yang jelas. Pendekatan ini sejajar dengan penekanan Go pada sempadan API yang jelas dan menggalakkan kebolehselenggaraan dan kebolehlanjutan kod.
Atas ialah kandungan terperinci Bolehkah Pakej Dalaman Go Benar-benar Merangkum Butiran Pelaksanaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!