函数中每个可能的控制流都必须返回值
public function ab(a: int , b: int ): int { if (a < b) { return 1 ; } else if (a > b) { return - 1 ; } else if (a == b) { return 0 ; } }
这里的错误在于控制流
else if (a == b) { return 0 ; }
不是最后一个控制流,if不是控制流的结束,else才会是控制流的结束。也就是说if控制流后面的控制流没有得到返回类型为int的值,因而出错,当然这个错误是逻辑错误,并非语法错误。
函数的返回值类型为:*或者为:void要注意:
// void是一种特殊类型,此类型的特殊之处在于它仅用于函数的返回类,表示函数不返回任何数据类型的值,返回值为空 // (当然就不可以返回undefined,因为undefined是void 类型包含的唯一值,返回undefined也就是返回了一个void类型的值) // *表示返回值为任意类型,当然包括undefined这种void类型的值