저는 초급 언어로 스칼라로 Any
클래스와 혼동합니다. 왜 어떤 유형을 사용할 수스칼라의 모든 클래스
def f(x:Any)=x+5
<console>:13: error: type mismatch;
found : Int(5)
required: String
def f(x:Any)=x+5
x
경우 (: INT 등 문자열 예)
재기록 코드 코드 x
변수가 어떤 데이터 유형이 될 수 있다는 것을 나타내는 전술
def f(x: Any) = println(x)
은 위의 오류가 발생합니다.
에 대한 이해가 스칼라로 혼동 스럽습니다. 제발 고쳐주세요.
m
가
A
에 의해 정의 된 경우 정적 타입 언어에서
'x '가 어떤 유형이든간에 항상 5를 추가 할 수 있는지 확신 할 수 없습니다.'f ("hello");를 호출하면 어떻게됩니까? –
@ArnaudDenoyelle 당신의 예제는 이론적으로 좋아,'int'를'String'에 추가 할 수 있습니다. 더 좋은 예는'+'연산자를 오버라이드 (override)하지 않는 클래스입니다. – SamTebbs33
실제로'A <: Any''와'B' 클래스의'b' 인스턴스의 인스턴스 'a'의 경우, 'val c = a + x'형식의 표현식은 실제로'a. + (x)'이것은 클래스 A가'def [B, C] + (b : B) :'메소드를 가지고있을 때만 작동한다는 것을 의미합니다. –