gpt4 book ai didi

kotlin - 为什么对字节的算术运算在 kotlin 中返回 int?

转载 作者:行者123 更新时间:2023-12-02 12:36:02 25 4
gpt4 key购买 nike

考虑这个代码:

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

这会导致编译错误,因为添加 2 Byte 的结果s 是 Int .

为了解决这个问题,我需要手动将结果转换回一个字节:
val x3: Byte = (x1 + x2).toByte()

这是非常违反直觉的。为什么算术运算符会这样工作?

最佳答案

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



它也是 Java 语义的精确副本。 Java 没有用于添加两个 byte 的字节码s, char s 或 short s。虽然 Kotlin 可以决定改变语义并发出更复杂的字节码,但选择与 Java 保持一致有其优点。

一个类似的问题是“为什么 Byte 是有符号类型?”答案将是类似的。 Kotlin 旨在让有经验的 Java 开发人员感到熟悉。

关于kotlin - 为什么对字节的算术运算在 kotlin 中返回 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52850670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com