Class Kotlin为8位仿真器创建Word类

Class Kotlin为8位仿真器创建Word类,class,kotlin,emulation,word,6502,Class,Kotlin,Emulation,Word,6502,我正在寻找一个6502仿真器的复活的帮助,这个仿真器是我在几个月前用Java编写的,现在转换成Kotlin。是的,有很多,但这是我的实现,所以我可以学习如何创建模拟器,现在,如何使用Kotlin 我需要地址的Word类,即: class Word(initValue: Int = 0x0000) { var value = initValue get() = field set(newValue) { field = newValu

我正在寻找一个6502仿真器的复活的帮助,这个仿真器是我在几个月前用Java编写的,现在转换成Kotlin。是的,有很多,但这是我的实现,所以我可以学习如何创建模拟器,现在,如何使用Kotlin

我需要地址的Word类,即:

class Word(initValue: Int = 0x0000) {
    var value = initValue
        get() = field
        set(newValue) {
            field = newValue and 0xFFFF
        }
}
我不能扩展Int,因此我假设我的类中有一个内部副本(如果有更好的方法,我很乐意听到)

使用此选项:

val address = Word()
很简单,我可以将它与许多
address.value+=123
一起使用,以移动到另一个位置。除此之外,我还可以添加函数来执行add、Inc、Dec等

但是,有没有办法修改该类,以便:

address += 123
直接的

我不确定该如何或采用什么方法来实现这一点?我不希望有太多:

address.add(123)    or       address.value += 123
在我的模拟器中


任何建议都将不胜感激。

与Java不同,Kotlin允许运算符重载

找到

从文档中可以使用operator关键字创建重载函数

data class Counter(val dayIndex: Int) {
    operator fun plus(increment: Int): Counter {
        return Counter(dayIndex + increment)
    }
}

你似乎在尝试重新创建,所以使用它可能更容易。(或者,即使你能处理签名问题。)如果你真的需要自己写,关键字可以帮助你。谢谢。没有意识到有未签名的类型!我有一个剧本,但并不热衷于这样一个事实:它们是实验性的,没有我需要的所有功能,比如低字节和高字节访问。我使用了下面的操作员超控;这也是我不知道的。非常感谢你的建议哇,非常感谢!我刚看完足球和工作回来。刚刚看到这个帖子!乌什波特看起来相当不错,在某种程度上起了作用。但是,我并不热衷于它仍然是实验性的,而且它没有LowByte()和HighByte()访问权限,因此我需要扩展它。因此,我在自己的Word类中使用了操作符overide。这是一种享受!!