Hack 语言学习/参考---1.3 Summary
Summary
Hack provides the following, non-exhaustive list of features:
-
Ability to annotate function and method return types.
-
Ability to annotate the type of member variables.
-
Protection against common unsafe coding patterns (e.g. sketchy null checks).
-
Type-safe collections (Vector, Map, Set).
-
A tool to check the types (the Hack type checker).
Hack has been designed with PHP compatibility in mind. The type checker enforces checks on typed code and assumes calls to/from PHP and other untyped code are correct. This means the amount of type checking will gradually increase as more and more code is written in Hack.
Hack is unlike many other statically typed languages:
-
The type checking phase is instant.
-
Local types are inferred.
-
There is a minimal need for casting.
-
The type related error messages are designed to make it easy to fix the core issue.
-
The type checking model is a best effort model. Hack code can call PHP code and vice versa.
Hack comes with the following benefits (and possible benefits):
-
Return types makes the code more readable.
-
Some typing mistakes will be caught by the type checker.
-
Better emacs/vim/etc. integration.
-
Future: Reliable refactoring tools.
-
Future: Most typing mistakes will be caught statically.