gpt4 book ai didi

ios - 看看这段代码,让我知道是否有任何我可以更改的地方

转载 作者:行者123 更新时间:2023-11-28 11:22:34 24 4
gpt4 key购买 nike

我昨天问了一个问题,得到了一个很棒的答案,解决了我的大部分问题。我试图将特定数值与以 12 为增量分配的 11 种颜色和每 12 增量重复一次的形状配对。

ex: 0:black:circle, 1:black:cross, 2:black:star...12
0:brown:circle, 1:brown:cross, 2:brown:star...12
0:red:circle, 1:red:cross, 2:red:star...12

依此类推,直到每个数字都分配给一种颜色和形状。下面的代码就是这样做的。但它以一种我没想到的方式做到了,输出如下。

struct ValueStruct {
var numValue: Int
var color: String
var shape: String

init(numValue: Int, color: String, shape: String) {
self.numValue = numValue
self.color = color
self.shape = shape
}
}

var startingNumValue = 0
let colorsArray = ["Black", "Brown", "Red", "Yellow", "Orange", "Green", "Grey", "Blue", "Purple", "Pink", "White"]
let shapesArray = ["Circle", "Cross", "Star", "Rectangle", "Triangle", "Square", "Heart", "Crown", "Line", "Diamond", "Ellipse", "Sun"]


var containingArray:[ValueStruct] = []

for colorItems in colorsArray {
for shapeItems in shapesArray {
containingArray.append(ValueStruct(numValue: startingNumValue, color: colorItems, shape: shapeItems))
startingNumValue += 1
}

这是 Playground 上输出的样子,所以有几个问题。

1) 这是最简洁的方法吗?正常循环的输出通常都在一个窗口中,看起来这是在以一种停止而不是重新开始直到完成的方式循环。

2) 有没有办法设置 startingNumValue 的上限,我只需要它达到 128,我担心以后可能会出现错误。

3) 最后,这在 Playground 上运行良好,但从常规项目中的 for colorItems in colorsArray 行开始,它会生成一个 Statements are not allowed at the top level 错误,关于处理该错误的最佳方法有什么建议吗? enter image description here

最佳答案

我添加了一个 if 语句来将您的数组限制为 128 个项目。在项目中,除变量赋值之外的代码需要在函数中。试试这个:

import UIKit

struct ValueStruct {
var numValue: Int
var color: String
var shape: String

init(numValue: Int, color: String, shape: String) {
self.numValue = numValue
self.color = color
self.shape = shape
}
}

class ViewController: UIViewController, UITableViewDelegate {

var startingNumValue = 0
let colorsArray = ["Black", "Brown", "Red", "Yellow", "Orange", "Green", "Grey", "Blue", "Purple", "Pink", "White"]
let shapesArray = ["Circle", "Cross", "Star", "Rectangle", "Triangle", "Square", "Heart", "Crown", "Line", "Diamond", "Ellipse", "Sun"]
var containingArray:[ValueStruct] = []

override func viewDidLoad() {
super.viewDidLoad()

for colorItems in colorsArray {
for shapeItems in shapesArray {
if startingNumValue < 128 {
containingArray.append(ValueStruct(numValue: startingNumValue, color: colorItems, shape: shapeItems))
startingNumValue += 1
}
}
}
println(startingNumValue)
}
}

关于ios - 看看这段代码,让我知道是否有任何我可以更改的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26202950/

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