variables - 如何链接变量,所以当我修改其中一个时,它们都被修改了?或者只是顶级的
问题描述
我在一个名为 ONE 的类中有 3 个变量 A、b 和 c
var a = 0
var b = 0
var c = 0
该类(第一类)是抽象的,由 3 个类(二、三、四)使用。选择的变量通过使用 when 语句进行更改。
var chosenVariable:Long
chosenVariable= when (sign){
1-> a
2-> b
3-> c
else -> a
}
请注意,符号是用户输入以决定选择哪个变量的内容。
我的问题是。当我修改时,chosenVariable
我希望它更改设置为 a、b 或 c 的任何变量。
这可能吗?我认为它可能被称为实例化,但我似乎无法想出任何以这种方式搜索的东西。我想我需要用setter和getter以某种方式做到这一点?
解决方案
您可以使用KMutableProperty0<>
类来保存对原始变量的引用:
var chosenVariable: KMutableProperty0<Long> = when (sign) {
1-> ::a
2-> ::b
3-> ::c
else -> ::a
}
// set value
chosenVariable.set(7)
它目前仅适用于全局变量。这是一些有用的信息。
推荐阅读
- python - Pandas:使用lines = True在json中强制执行数据帧dtypes
- reactjs - 有没有办法通过 Promise 初始化 React 状态?
- reactjs - 使用 React 和 Django REST 框架进行身份验证
- android - Android Camera Capture - 切换字体/后置摄像头图像不上传
- scrollbar - 仅对某些元素而不是整个页面启用“-webkit-scrollbar”属性?
- laravel - 我需要在 laravel 中使用 sortBy 进行分页
- reactjs - React Native:无法显示从 Amazon AWS S3 下载的图像
- docker - 在 docker 容器中安装 Sharp 时出错
- r - R Prog- Market Basket Analysis - 如何在使用支持和信心循环时可视化产品推荐?
- javascript - ASP.NET Core MVC 在产品页面详细信息上应用同位素过滤器