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類型檢測
- 2. Erlang mime類型
- 3. 類(類型)檢查
- 4. 檢查類型
- 5. XSLT類型檢查
- 6. Prolog類型檢查
- 7. Typetree類型檢查
- 8. 檢查Genric類型
- 9. 檢查類型Javascript
- 10. typedef類型檢查?
- 11. 檢查泛型類型是
- 12. 檢查泛型類型
- 13. Erlang顯示器類型
- 14. 類型檢查的子類
- 15. 類型檢查和範圍檢查
- 16. 類型檢查與泛型類
- 17. 創建新類型或檢查類型?
- 18. OCaml:類型檢查對象
- 19. 變量類型檢查
- 20. Java 8類型檢查Collectors.groupingBy
- 21. 模板類型檢查C++
- 22. 類型平等檢查
- 23. 檢查通用類型
- 24. 檢查sqlite列的類型
- 25. 結構檢查類型| Swift
- 26. DynamicMethod的和類型檢查
- 27. Elm - 檢查值的類型
- 28. 檢查設備類型?
- 29. Ramda類型檢查助手
- 30. 檢查facebook對象類型
您可以編寫一個運行編譯器和透析器的makefile或類似文件。或者我誤解了你的問題? – legoscia 2015-02-23 11:22:01