在同一个结构体中,定义不同的构造函数,如果传值类型相同,但是外部名称不一样,可以当做不同的构造函数,这就java的区别很大,例子如下:

struct Celsius {

    var temperatureIC: Double = 0.0

    init(fF fahrenheit: Double){

        temperatureIC = (fahrenheit - 32.0) / 1.8;

    }

    init(fK kelvin: Double){

        temperatureIC = kelvin - 273.15;

    }

}

也可以内部参数一样

struct Celsius {

    var temperatureIC: Double = 0.0

    init(fF fahrenheit: Double){

        temperatureIC = (fahrenheit - 32.0) / 1.8;

    }

    init(fK fahrenheit: Double){

        temperatureIC = fahrenheit - 273.15;

    }

}