我正在通過Moose
食譜,我仍然無法看到我是否可以使用它創建私有變量和函數?可能嗎?如果是的話,如何與穆斯創建它們?如何使用Moose創建私有/公共變量和函數?
6
A
回答
10
像daxim指出的那樣,私有方法有「_」前綴。由於屬性(實例變量)生成getter方法(如果RW也設定裝置的方法)開箱,你應該這樣做:
has 'myvariable' => (
is => 'ro',
writer => '_myvariable',
init_arg => undef,
# other options here
);
這樣你就可以設置你的類/實例中這個屬性和它的不可設置從外面。如果只讀訪問過多,您還可以將其標記爲「私有」:
has '_myvariable' => (
is => 'ro',
writer => '_set_myvariable'
init_arg => undef,
# other options here
);
10
用_
前綴一個標識符,以將函數/變量等標記爲私有。這在perlstyle的約範圍部分中有說明,大約在文檔的中間。
這是由理智的程序員和一些工具(源解析器/文檔)推崇的,但不是由編譯器強制執行。見perlmodlib#NOTE。
相關問題
- 1. 私人和公共變量
- 2. 我如何通過/使用公共函數Form1中的類私有變量?
- 3. C++私有和公共函數
- 4. 爲什麼我們分別使用公共和私有變量
- 5. 公共類,但私有成員變量?
- 6. 使用公共函數調用私有函數
- 7. 使用C++中的私有函數覆蓋公共虛函數
- 8. PHP |爲什麼我應該使用公共靜態/私有靜態函數而不是公共/私有函數?
- 9. TypeScript類的私有構造函數變量和公共獲得者
- 10. 使用「私人」變量+方法v.s. 「公共」的實例變量
- 11. C++ - 使用私有參數調用公共函數
- 12. 私有和公共方法和JavaScript中的變量
- 13. 在公共屬性獲取器中使用私有變量
- 14. 如何在android中使用公共變量裏面的函數?
- 15. 私有公有變量;
- 16. 傳遞一個私有變量的公共靜態變量C#
- 17. 如何創建公共和私人會員?
- 18. 用私有基本函數覆蓋公共虛函數?
- 19. 公共和私有變量的命名約定?
- 20. Java可能有私人類和公共變量?
- 21. 骨幹視圖中的私有和公共變量
- 22. 公共和私有變量之間的區別
- 23. 私有/公共變量的PHP和繼承
- 24. 我將如何使用私有變量創建實例方法?
- 25. 如何創建使用私有變量長度在C++中
- 26. 私有函數和變量ExtJs4?
- 27. 公共const變量或私有一個get函數,哪個更好?
- 28. 如何在私有方法和公共方法之間連接變量
- 29. 如何在ES6類中創建私有變量和方法?
- 30. flash as3中的私有函數和私有變量?
如果您願意,可以查看MooseX :: Privacy,它是完成此操作的擴展。然而,私人方法並不是真正的私人方法,因爲它們會死亡,而不是在派遣中被跳過。 – 2011-04-13 13:20:06
Perl不是Java。 – Ether 2011-04-13 14:51:09