<分区>
我正在快速开始转换我的一些旧 Obj-C 库。老实说,这有点痛苦,我想知道我的习惯是不是不好,因为我读过的所有文章都在谈论快速学习是多么容易。具体来说:
- 没有隐式类型转换会使代码困惑,并使诸如乘以 for 循环计数器之类的事情变得不那么方便。有没有更好的方法来处理这个问题?
- 数组的使用也有点冗长。有没有更短的方法来使用数组作为参数,或者像下面这样声明一个空数组?
与 Obj-C 允许的类似结构的句子相比,一般来说,命名函数似乎更难。大多数开发人员是否需要为具有多个参数的函数的第一个参数指定外部参数名称?
func colorsAlongArray(colorArr:Array<UIColor>, steps:Int) -> Array<UIColor> { let arrCount = colorArr.count let stepIncrement = Double(arrCount)/Double(steps) var returnArr : Array<UIColor> = [] for i in 0..<steps { let stepVal = stepIncrement*Double(i) let stepFactor = CGFloat(fmod(stepVal, 1.0)) let stepIndex1 = Int(floor(stepVal/1.0)) var stepIndex2 = Int(ceil(stepVal/1.0)) if(stepIndex2 > arrCount-1) {stepIndex2 = arrCount-1} let color1 = colorArr[stepIndex1] let color2 = colorArr[stepIndex2] let color = colorByInterpolatingColors(color1, color2: color2, factor: stepFactor) returnArr += [color] } return returnArr }