약한 타이핑 (동적 타이핑과 혼동하지 말아야 함)의 정의는 두 값이 다른 타입 일 때 이진 연산자가 작동한다는 것입니다.약한 타이핑, 자동 보호, 확대 변환의 차이점은 무엇입니까?
파이썬 프로그래머는 1+"hello"
이 자동으로 다른 작업을 수행하는 대신 실패하기 때문에 파이썬을 강력하게 입력한다고 주장합니다. 반대로 일반적으로 약형으로 간주되는 다른 언어 (예 : PHP, JavaScript, Perl)는 피연산자 중 하나 또는 둘 다 자동 변환합니다. 예를 들어, JavaScript에서는 1+"hello"
->"1hello"
이고 Perl에서는 1+"hello"
->1
이지만 1+"5"
->6
입니다.
이제 Java는 강력한 형식의 언어로 간주되지만 자동 (해제) 복싱 및 확장 변환은이 문제를 해결하는 것으로 보입니다. 예를 들어, 1+new Integer(1)
->2
, hello+"1"
->"hello1"
, 'A'+1
->66
및 long은 일반적으로 잘린 경우에도 자동으로 float로 변환 할 수 있습니다. 자바는 약한 타입인가? 약한 타이핑, 자동 저장 및 확대 변환의 차이점은 무엇입니까?
당신은 그 정의를 어디에서 들었습니까? 나에게 아주 이상한 것 같아. "강한"및 "약한"이라는 용어는 일반적으로 내 경험에 매우 유용하지는 않지만 여기서하는 것처럼 사용하지 않을 것입니다. –
@ 존 키 스케 (JonSkeet), 어떻게 정의하겠습니까? – Dog