0
A
回答
2
簡答:你不行。
Erlang是一種動態類型語言,運行時依賴的許多假設都要求它是這種方式,至少在某些地方。過去一直在討論製作強類型子集或功能純語言子集,但這兩種方法都沒有表現出值得超出透析器已經提供的功能。
這就是說,透析器是一個非常有用的工具如果你構建你的代碼來利用它。
1
@ zxq9是對的。你不能。不過,我想補充說的是,除了透析器之外,您還可以將警衛添加到您的功能定義中。透析器非常適合靜態分析,但不會在運行時提供幫助。除了定義的功能和型號規格,像這樣:
-spec foo(X :: integer()) -> integer().
foo(X) -> X + 1.
您也可以在函數定義中添加一個保護條件:
-spec foo(X :: integer()) -> integer().
foo(X) when is_integer(X) -> X + 1.
這將確保一個例外是,如果一個意外上調類型被傳遞給函數調用。通過使用類型規範和守衛,你可以確保函數只會在指定的類型上被調用。
相關問題
- 1. Erlang mime類型
- 2. 類(類型)檢查
- 3. 檢查類型
- 4. XSLT類型檢查
- 5. typedef類型檢查?
- 6. Prolog類型檢查
- 7. 檢查Genric類型
- 8. Typetree類型檢查
- 9. 檢查泛型類型是
- 10. 類型檢查的子類
- 11. Erlang顯示器類型
- 12. 類型檢查和範圍檢查
- 13. 類型檢查與泛型類
- 14. 類型檢查器的JavaScript?
- 15. 檢查類型被定義
- 16. 檢查父類型TPT EF4
- 17. 類型檢查器階段
- 18. 檢查facebook對象類型
- 19. 字符串類型檢查
- 20. 結構檢查類型| Swift
- 21. Ramda類型檢查助手
- 22. 檢查通用類型
- 23. OCaml:類型檢查對象
- 24. 檢查PyObjects C類型
- 25. 模板類型檢查C++
- 26. 如何檢查值類型?
- 27. 檢查請求類型
- 28. 的數據類型檢查
- 29. 檢查對象類型
- 30. 類型平等檢查
您可以編寫一個運行編譯器和透析器的makefile或類似文件。或者我誤解了你的問題? – legoscia 2015-02-23 11:22:01