2017-11-08 7 views
1

imgui port에서 작업하면서 저는 항상 원시 배열을 사용하여 C++ 포인터/주소 전달을 시뮬레이트했습니다. 예를 들어리플렉션을 사용하여 배열을 사용하지 않고 프리미티브 전달 및 수정

: bool: BooleanArray

난 그냥 대신 직접 현장을 통과 할 수있는 가능성을 탐구

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

, 종류 C++ :

ImGui::Checkbox("Anti-aliased lines", &style.AntiAliasedLines);

코 틀린 :

는 난 그냥 checkbox()에 해당 KMutableProperty0<Boolean>을 수용하기 위해 필요한, 그리고도 두 번 같은 함수 내에서 해당 필드를 설정할 수있는 가능성을 가지고 확인

: 내 우려되는 get(): Booleanset(Boolean)

있다 :

  • 이 기능이 Java와 잘 어울리는가요?

  • 제가이 경로를 따라 가면 금해야 할 금기 사항이 있습니까? 공연이나 뭐 그런 거요?

나는 느낌을 가지고 있기 때문에이 방법을 어떻게 든 해키 더러운이기 때문에 그

답변

2

합니까 자바 좋은이 놀이?

Kotlin이 Java getter 및 setters를 나타내는 데 사용하는 합성 속성을 참조하는 것이 좋습니다. getFoo + setFoofoo (바운드 호출 가능 참조 bar::foo)을 사용할 수 없습니다. 현재 지원되지 않습니다.

당신은 해결을 시도 할 수 점점 그 값을 설정하는 의미에서 속성 참조로 언 바운드 호출 Bar::getFoo, Bar::setFoobar에 대한 참조 및 행위를 허용하는 사용자 정의 KMutableProperty0 구현.

이 경로를 따라 가면 금해야 할 금기 사항이 있습니까? 공연이나 뭐 그런 거요?

바운드 호출 참조, 그래서 style::antiAliasedLines는 GC에서 style을 유지합니다 수신기에 대한 참조를 보유하고, 당신은 당신이 저장 호출하는 참조주의해야한다.