我的打字习惯应该如何在swift中改变?

我的打字习惯应该如何在swift中改变?,swift,Swift,我将通过转换一些旧的Obj-C库开始使用swift。老实说,这有点痛苦,我想知道我的习惯是坏的还是别的什么,因为我读到的每一篇文章都在谈论学斯威夫特是多么容易。具体而言: 没有隐式类型转换会使代码变得杂乱无章,并使诸如乘以for循环计数器之类的事情变得不那么方便。有没有更好的方法来处理这个问题 数组的使用也有点冗长。有没有更简短的方法将数组用作参数,或者像下面这样声明空数组 与允许的类似句子的结构Obj-C相比,命名功能通常更难实现。大多数开发人员是否需要为具有多个参数的函数中的第一个参数指定

我将通过转换一些旧的Obj-C库开始使用swift。老实说,这有点痛苦,我想知道我的习惯是坏的还是别的什么,因为我读到的每一篇文章都在谈论学斯威夫特是多么容易。具体而言:

  • 没有隐式类型转换会使代码变得杂乱无章,并使诸如乘以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
    }
    
    func colorsAlongArray(colorArr:Array,steps:Int)->Array
    {
    让arrCount=colorArr.count
    设阶跃增量=双精度(arrCount)/双精度(阶跃)
    var returnArr:Array=[]
    对于0中的i..arrCount-1)
    {stepIndex2=arrCount-1}
    设color1=colorArr[stepIndex1]
    设color2=colorArr[stepIndex2]
    让颜色=ColorByInterpolingColors(color1,color2:color2,factor:stepFactor)
    returnArr+=[颜色]
    }
    返回返回
    }
    

您可以这样创建
UIColor
数组(任意一种方式):

我认为你可以在for循环中这样做:

for i in 0..<steps as! [Double] {

}

对于0中的i..您可以这样创建
UIColor
数组(任意一种方式):

我认为你可以在for循环中这样做:

for i in 0..<steps as! [Double] {

}

关于你提出的三个问题,
0中的i.

  • 无隐式类型转换是一种语言约定,旨在使代码安全。这是故意的,而且有点冗长。您可以在中第章的一节中了解这一点。默认情况下,在算术运算中也不会得到滚动

  • Swift是强类型的,因此,如果没有初始值放入数组,系统无法自动确定类型(如
    var returnArr=[UIColor.blackColor()]
    ),则必须以某种方式指定类型。但是,您可以使用类型推断并稍微缩短数组声明(
    var returnArr=[UIColor]()

  • Swift
    的命名指南与
    Objective-C
    的命名指南不同。事实上,它们更加简短。我建议你去看看:


关于您提出的三个问题

  • 无隐式类型转换是一种语言约定,旨在使代码安全。这是故意的,而且有点冗长。您可以在中第章的一节中了解这一点。默认情况下,在算术运算中也不会得到滚动

  • Swift是强类型的,因此,如果没有初始值放入数组,系统无法自动确定类型(如
    var returnArr=[UIColor.blackColor()]
    ),则必须以某种方式指定类型。但是,您可以使用类型推断并稍微缩短数组声明(
    var returnArr=[UIColor]()

  • Swift
    的命名指南与
    Objective-C
    的命名指南不同。事实上,它们更加简短。我建议你去看看: