Skip to content

49 泛型推断 ​

Entry<> 从具名构造实参推断两个类型参数;choose 也从实参推断 T,调用点不必写出类型参数。

norm
value Entry<T, U> {
  T first
  U second
}

T choose<T>(T left, T right) { return left }

main() {
  var entry = Entry<>(first: 7, second: "seven")
  var selected = choose(left: entry.second, right: "other")
  printLine(entry.first)
  printLine(selected)
}

预期输出:

text
7
seven

动手试试:把 Entry 的第二个值和 right 实参都改为整数,观察 selected 的推断类型。

精确规则:语言参考。

Norm 0.25