@shevzoom
 dev., student at MEPhI

Как правильно обратиться к функции?

Решил перетащить код во внешний метод и все посыпалось.
как правильно положить f в параметр parabol? или другие способы грамотно вызова функции без ошибок.
func f(x: Double) -> Double {
    return x*x 
}

func parabol() -> Void {
    var : Double = 1e-6

    var x = [Double]()
    x.append(3)
    x.append(4)
    x.append(5)

// Cannot call value of non-function type '[Double]'
    var f = [Double]()
    f.append(f(x: x[0]))
    f.append(f(x: x[1]))
    f.append(f(x: x[2]))
}

и вот
func parabol() -> Void {


// Type of expression is ambiguous without more context
        x.sort { (one, two) in return f(x: one) < f(x: two) }

}
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
@iMaximus
func f(x: Double) -> Double {
    return x*x
}

var x = [Double]()

func parabol() {
    //var g: Double = 1e-6
    x.append(3)
    x.append(4)
    x.append(5)

// Cannot call value of non-function type '[Double]'
    var y = [Double]()
    y.append(f(x: x[0]))
    y.append(f(x: x[1]))
    y.append(f(x: x[2]))
}

func parabolN() {
// Type of expression is ambiguous without more context
   x.sort { (one, two) in return f(x: one) < f(x: two)
   }
}


Не знаю зачем это, но так писать не нужно. Плюс, нельзя объявлять функцию с одним названием два раза.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы