gpt4 book ai didi

reflection - 使用反射来传递和修改原语而不使用数组

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

在 imgui 上工作 port ,我一直用原始数组来模拟c++指针/地址传递。

例如:

checkbox("Anti-aliased lines", bool.apply { set(0, style.antiAliasedLines) })
style.antiAliasedLines = bool[0]

在哪里 bool: BooleanArray
我只是探索了直接传递该字段的可能性,类似于 C++:
ImGui::Checkbox("Anti-aliased lines", &style.AntiAliasedLines);
Kotlin :
checkbox("Anti-aliased lines", style::antiAliasedLines })
我只需要容纳一个相应的 KMutableProperty0<Boolean>checkbox() ,并且我还仔细检查了是否可以在同一函数中设置该字段:有一个 get(): Booleanset(Boolean)
我的担忧是:
  • 这对java很好吗?
  • 如果我沿着这条路线走,我应该注意哪些禁忌症?比如表演之类的?

  • 因为我有一种感觉,因为这种方法有点笨拙和肮脏

    最佳答案

    Does this play nice with java?



    一件不起作用的事情是引用 Kotlin 用来表示 Java getter 和 setter 的合成属性,例如 getFoo + setFoofoo (并且您不能使用绑定(bind)的可调用引用 bar::foo )。目前不支持此功能。

    您可以尝试通过自定义 KMutableProperty0 来解决此问题接受对 Bar::getFoo 的未绑定(bind)可调用引用的实现, Bar::setFoobar并在获取和设置其值的意义上充当属性引用。

    Are there any contraindications I should be aware of, if I go down this route? Such as performances or whatever?



    绑定(bind)的可调用引用包含对接收者的引用,因此 style::antiAliasedLines将保留 style来自 GC,您必须小心存储哪些可调用引用。

    关于reflection - 使用反射来传递和修改原语而不使用数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47176555/

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