Swift的Kotlin(或Java)结构?同一类的多个实例,对其变量进行变异

Ondrej Sevcik:

我不确定自己的头衔是否明确。在Swift中,我有这个结构。

struct Movement {
 let name: String
 var reps: Int
}

let movement1 = Movement(name: "Push Ups", reps: 20)

var movementA = movement1
movementA.reps = 30

print(movement1.reps) // Prints 20
print(movementA.reps) // Prints 30

Kotlin(或Java)中的替代方法是什么?问题是在我的应用程序中,我的锻炼包含多个动作。我将这些动作附加到MutableList上,并且当我进行重复动作的锻炼时,问题就会出现。

例如,当我想输入锻炼内容时:

20俯卧撑

30个引体向上

40俯卧撑

我最终得到:

40俯卧撑

30个引体向上

40俯卧撑

首先,我选择运动#1并设置运动#1的代表,但是当我选择运动#3并设置运动#3的代表时,它将覆盖运动#1的变量。

任何想法?

我已经尝试过类似的方法,但是没有用。

class Movement(name: String) {
 var reps: Int? = null
}
val movement1 = Movement("Push Ups")
movement1.reps = 20
var movementA = movement1
movementA.reps = 30
Log.i("REPS1: ", movement1.reps.toString()) // 30
Log.i("REPSA: ", movementA.reps.toString()) // 30
气泡:

我从未使用过Swift,但是似乎您有一个可变的值,当您将其分配给新变量时,该值会被复制。在Kotlin中,您不能有这种类型。当给新变量赋值时,仅引用被复制,并且仍指向相同的确切存储位置。

您可以使用一个数据类,它为您提供一种方便的复制方法:

data class Movement(val name: String, val reps: Int)

val movement1 = Movement("Push Ups", 20)
val movementA = movement1.copy(reps = 30)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在 Kotlin 中访问同一类的不同实例的字段

确保我的函数返回变异对象作为同一类打字稿的实例?

如何异步运行同一类的多个实例?

使用Guice创建同一类的多个实例

同一类的多个实例上的Foreach循环

CSS:同一类上有多个`!important`实例

单击同一类的多个实例不起作用

具有同一类的多个实例的类构造函数依赖项

同一类中的多个常量

声明同一类的多个对象?

同一类的多个元素

类实例作为同一类的类成员

在定义包含main()方法的同一类的实例变量时获取StackOverflowError

无法访问同一类的方法内部的实例变量?

模拟被测函数中使用的同一类的多个实例

尝试创建同一类的多个实例时无法腌制_tkinter.tkapp对象错误

在Interface Builder中实例化同一类的多个对象会导致共享属性

PyTorch:为什么要创建同一类型层的多个实例?

同一变量中类的多个实例化

在类中调用同一类的实例

创建类的静态属性(属性是同一类的实例)

Java:直接从同一类的另一个实例访问私有字段

修改同一类的另一个实例时的实例变量更改值,Python-Tkinter

如何在不同线程中对同一类的多个对象进行方法调用?

Java类中全局变量的范围及其在同一类方法中的行为

如何使用Java中的动态类加载来加载同一类的多个版本

无法从同一类的闭包中更改变量[swift 3.0]

从同一类的实例中检索属性及其描述

将实例传递给同一类中的函数