>

이 코드를 고려하십시오 :

val x1: Byte = 0x00
val x2: Byte = 0x01
val x3: Byte = x1 + x2;

2 Byte 를 추가 한 결과 컴파일 오류가 발생합니다. s는 Int 입니다 .

이 문제를 해결하려면 수동으로 결과를 바이트로 다시 캐스팅해야합니다.

val x3: Byte = (x1 + x2).toByte()

이것은 매우 직관적입니다. 산술 연산자는 왜 이렇게 작동합니까?

  • 답변 # 1

    와이즈 비즈

    또한 Java 시맨틱의 정확한 사본입니다. Java에는 두 개의

    This is very counter-intuative. Why do the arithmetic operators work like this?

    를 추가하기위한 바이트 코드가 없습니다. s, byte s 또는 char 에스. Kotlin은 시맨틱을 변경하고 더 복잡한 바이트 코드를 생성하기로 결정할 수 있었지만 Java와 계속 일치하는 선택은 장점이 있습니다.

    유사한 질문은 "왜 short 입니까?  부호있는 유형? "과 비슷한 대답을 드리겠습니다. Kotlin은 숙련 된 Java 개발자에게 친숙한 느낌을줍니다.

    Byte

  • 이전 python 3.x - Django에서 IntegerField/CharField를 자동 증분 필드로 만드는 방법 1000001, 1000002
  • 다음 java - SQL 데이터베이스를 JavaFx 프로그램에 연결했지만 로그인하려고하면 오류가 발생합니다