Как использовать информацию о модели в качестве параметров функции

#swift #model

#swift #Модель

Вопрос:

У меня есть эта модель:

 struct ModelGlider {

static var arr_Glider2DT:[[//Array 2D with Tuple
    (
        gliderSeats:Int,
        gliderMass :Double,
        gliderName :String
    )
]] = [[]] //empty Array 2DT

init(arr_Glider2DT:
    [[
        (
            gliderSeats:Int,
            gliderMass :Double,
            gliderName :String
        )
    ]]
    ){ModelGlider.arr_Glider2DT = arr_Glider2DT}
}
  

В функции я хотел бы использовать информацию о модели в качестве входных и возвращаемых параметров.
Вместо:

 func searchGlidersForString(
    searchString:String,
    inputArr2DT :[[
        (
            gliderSeats:Int,
            gliderMass :Double,
            gliderName :String
        )
    ]]) -> [[
        (
            gliderSeats:Int,
            gliderMass :Double,
            gliderName :String
        )
    ]]
{
    //do some stuff
    return ...
}
  

Я бы предпочел что-то вроде:

 func searchGlidersForString(
    searchString:String,
    inputArr2DT : ModelGlider.arr_Glider2DT) -> ModelGlider.arr_Glider2DT
{
    //do some stuff
    return .
}
  

Это смущает, но я не могу понять, чего мне не хватает. Есть предложения?

Ответ №1:

Вы можете указать пользовательский typealias :

 typealias ArrGlider2DT = [[ // Array 2D with Tuple
    (
        gliderSeats: Int,
        gliderMass: Double,
        gliderName: String
    )
]]
  

и используйте это так:

 struct ModelGlider {
    static var arr_Glider2DT: ArrGlider2DT = [[]] // empty Array 2DT

    init(arr_Glider2DT: ArrGlider2DT) {
        Self.arr_Glider2DT = arr_Glider2DT
    }
}

func searchGlidersForString(
    searchString: String,
    inputArr2DT: ArrGlider2DT
) -> ArrGlider2DT {
    // do some stuff
    return ...
}