强类型的好处是在编译期就能发现问题。应该善用这个优势。函数入口经常要检测参数是否合法。我觉得主要原因在于算法无法处理类型的所有实例,而只能处理部分实例,所以要判断参数的值。那么为何不去构造更严格范围的新类型,而避免参数值判断呢?比如算法只能处理偶数就不要用int,而用新的偶数类。