Scala &引用;def someFun[(a:Int)=a";,没有警告,也没有错误。正常吗?

Scala &引用;def someFun[(a:Int)=a";,没有警告,也没有错误。正常吗?,scala,types,type-inference,Scala,Types,Type Inference,出于好奇,我尝试运行以下程序: def someFun[_](a:Int) = a 令我惊讶的是,没有发出任何错误或警告,并且它以您期望的方式运行(我认为这很好),但是编译器不理解类型参数的冗余是正常的吗,或者它可能意味着(语义上?)与此不同: def someFun(a:Int) = a 编译器将生成以下命令: def someFun(a: Int): Int = a; 但这不是因为编译器知道这是未使用的,而是因为类型擦除。您可以使用编译器的-print选项检查类似的内容。这也不足为奇,

出于好奇,我尝试运行以下程序:

def someFun[_](a:Int) = a
令我惊讶的是,没有发出任何错误或警告,并且它以您期望的方式运行(我认为这很好),但是编译器不理解类型参数的冗余是正常的吗,或者它可能意味着(语义上?)与此不同:

def someFun(a:Int) = a

编译器将生成以下命令:

def someFun(a: Int): Int = a;
但这不是因为编译器知道这是未使用的,而是因为类型擦除。您可以使用编译器的
-print
选项检查类似的内容。这也不足为奇,因为它只是一个未使用的类型参数