为了账号安全,请及时绑定邮箱和手机立即绑定

Java 到 Swift 的转换 - 如何在 Swift 中增加索引计数

Java 到 Swift 的转换 - 如何在 Swift 中增加索引计数

SMILET 2022-07-14 17:31:28
这看起来很简单,但我被卡住了。我得到了通常的 Index Out Of Bounds Swift 错误。似乎Java可以从一开始就设置数组的索引数量,也可以增加索引的总数。我知道问题出在哪里,但我不知道这个 Java 函数的 Swift 等价物。Java 函数有一个后置增量器,用于增加 EMPTY 数组的索引计数。我不知道如何在 Swift 中编写它。使用 Swift 你必须使用 append。您不能在空数组上使用下标。加上我不知道如何增加索引计数。如何将此 Java 转换为 Swift?爪哇private int[] theArray;private int itemsInArray = 0;public void addItemToArray(int newItem) {        theArray[itemsInArray++] = newItem;    }迅速var theArray = [Int]()var itemsInArray = 0func addItemArray(newItem: Int) {    theArray[itemsInArray] += newItem}addItemArray(newItem: 5)
查看完整描述

1 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

Array根据文档,使用默认大小初始化


var theArray = Array(repeating: "", count: itemsInArray) // Where repeating is the contained type 

然后你可以insert通过


theArray.insert(newItem, at: yourIndex)

Array(s) 在 Java 中必须有一个首字母size,创建后不能更改。然而 Swift 有与 Java 类型相当的Collection<T>类型,Java 类型可以有 variable size。


例如


private int[] theArray;

将编译,但它也会NullPointerException在第一次访问时产生 a,因为它没有正确初始化


private int[] theArray = { 1, 2, 3, 4 };

private int[] theArray = new int[10];

在 Java 和 Swing 中,您还需要小心使用myArray[index]Java 中的表示法或myArray.insert(item, at: index)Swing 中的表示法访问正确的索引范围。


您的示例的 Java 行theArray[itemsInArray++] = newItem意味着


将newItem值分配给itemsInArray索引

增量itemsInArray(参见后增量运算符)

在 Swift 中,您只需将一个新元素附加到Array,您甚至不需要维护一个索引itemsInArray


var theArray = ["One", "Two", "Three"]

theArray.append("Four")


var theIntegerArray = [1, 2, 3]

theIntegerArray.append(4)

或使用空数组


var theIntegerArray: Array<Int> = []

theIntegerArray.append(4)

是的,您可以使用repeatingwithInteger值。只是


Array(repeating: 0, count: itemsInArray)


查看完整回答
反对 回复 2022-07-14
  • 1 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信