【发布时间】:2016-01-18 12:16:14
【问题描述】:
我需要检查一系列数组中的某个值,然后如果该值在范围内,则为通过检查的每个数组附加一个字符串数组,并为其命名。例如,在下面的代码中,我希望将“First Array”附加到 lensLibrary,因为它包含 spherePower。
如何将字符串与每个数组关联起来,用作显示给用户的名称?我尝试了一个开关,对作为参数传递的每个数组使用不同的大小写,但失败了,if 语句也是如此。
let arrayA : [Float] = [1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0] // "First Aray"
let arrayB : [Float] = [5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5] // "Second Array"
var lensLibrary : [String] = []
func arrayContains(array: [Float], powerD : Float) {
var lensName : String!
if array.minElement() < powerD && powerD < array.maxElement() {
lensLibrary.append( /* Name of Array that was checked */ )
}
override func viewDidLoad() {
super.viewDidLoad()
spherePower = 4.5
// Check if spherePower is in each array, and add the name of the array to lensLibrary if it is present
arrayContains(arrayA, powerD: spherePower)
arrayContains(arrayB, powerD: spherePower)
}
【问题讨论】:
-
你的问题毫无意义。
lensLibrary不能加“数组名”;lensLibrary是浮点数数组,而不是名称数组。您不能将字符串(如“FirstArray”)插入浮点数组。为什么你甚至想要?用户怎么会知道这些名字? -
另外,您的代码绝不会查看
powerD是否在 数组中。我希望你不这么认为。它没有。 -
抱歉,float 类型在复制代码时出错,它是简化的,不是复制和粘贴的。至于检查,是的,我知道,正如所写,它只检查范围。我有另一个函数来检查它是否真的在数组中,但为了简单起见,我省略了它。我要做的是创建一个字符串数组,其中仅包含通过检查的数组的“名称”。我要问的是,如何为每个数组分配一个名称,以便当一个数组通过检查时,它的名称可以附加到 lensLibrary 并显示给用户?
-
嗯,它没有有名字。 cmets 后面的字符串只是您正在制作的 cmets;它们不是程序本身的东西。将字符串名称与对象关联的常用方法是字典:键是名称,值是对象。因此,您可以从
[String : [Float]]的字典开始 - 键是字符串(名称),值是浮点数组(例如您的arrayA和arrayB)。
标签: arrays string swift append