2017-12-27 6 views
0

내가 클래스 정의와 두 개의 함수 정의 여기에서스칼라에 제네릭 형식이 있거나없는 인스턴스를 만드는 데있어 다른 점은 무엇입니까?

class Queue[T] (
    private val leading: List[T] 
    private val trailing: List[T] 
){} 

def a[T](xs: T*) = new Queue[T](xs.toList, Nil) 

def b[T](xs: T*) = new Queue(xs.toList, Nil) 

이, 클래스는 일반적인 유형으로 정의하고, 또한이 개 기능을 수행한다.

하지만 여기서는 두 가지 기능의 차이점이 인스턴스를 만들 때입니다.

작업 잘 에러없이 모두가 다음의 식으로 작성됩니다 :

a(1,2,3,4) 
b(1,2,3,4) 

a[Int](1,2,3,4) 
b[Int](1,2,3,4) 

, 나는 그 차이가 무엇인지 알아낼 수 없었다.

+0

'Queue'와 'b'의 유형 매개 변수에 대해 다른 이름을 선택한 경우이 점에 대해 더 쉽게 이야기 할 수 있습니다. –

답변

4

아무 것도 없습니다. Queue 클래스의 유형 매개 변수 Tb 메소드의 유형 매개 변수 T으로 유추됩니다.

관련 문제