4

谁能解释类型检查类型推断问题之间的区别?

我试图寻找差异,但我找不到任何令人信服的来源可以清楚地解释差异。如果可能的话,也包括例子。

4

1 回答 1

4

给定代码:

(define (sum lst)
  (if (null? lst)
      0
      (+ (car lst) 
         (sum (cdr lst)))))

lst关于必须是什么或程序返回类型是什么,您有什么可以说的吗?编译器可能会做同样的事情,这将被称为类型推断。

类型检查是检查代码中指定或推断的类型。如果代码中存在不一致,或者从推断它加起来不清楚,它将失败。

于 2018-09-30T13:24:05.793 回答