Что причина там для C# или Java, имеющего лямбды?

Используя константу MYSQLI_ASSOC, ваш код будет вести себя идентично mysqli_fetch_assoc(), в то время как MYSQLI_NUM будет вести себя идентично функции mysqli_fetch_row(), которая, я думаю, вам нужна.

Попробуйте использовать MYSQLI_NUM .

Кроме того, убедитесь, что вы проверили, успешно ли выполнен запрос, прежде чем пытаться извлечь из него строки, измените $res = $stmt->get_result(); на:

if(!$res = $stmt->get_result()){
    die($db->error);
}

18
задан tvanfosson 16 October 2008 в 18:58
поделиться

7 ответов

Существуют общие примеры использования, которые требуют, чтобы передача (или хранение) блок кода была выполнена позже. Наиболее распространенными были бы слушатели события. Хотите верьте, хотите нет, следующий бит кода использует конструкцию выхода лямбды в Java:

JButton button = new JButton("Push me!");
button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        System.out.println("Pressed!");
    }
});

анонимный внутренний класс действует как лямбда, хотя чрезвычайно подробная. С определенным неявным волшебством преобразования мы можем записать следующий эквивалент в Scala:

val button = new JButton("Push me!")
button.addActionListener { e =>
  println("Pressed!")
}

C# делает этот вид вещи довольно легким с делегатами и (еще лучшими) лямбдами.

39
ответ дан 30 November 2019 в 06:14
поделиться

В случае C# лямбды используются внутренне для реализации LINQ. См. статью Эволюция LINQ И Его Влияние На Дизайн C#

1
ответ дан 30 November 2019 в 06:14
поделиться

C# не идет для чистоты в конкретную школу дизайна языка (в отличие от Java, который был разработан Smalltalker, чтобы быть чем-то вроде чистого языка OO). C# идет для all-things-to-all-people, и это довольно хорошо в нем. C# базируется вокруг сбора лучшего из различных стилей программирования на один высококачественный, хорошо-поддерживаемый-язык. Это включает процедурный, объектно-ориентированный, функциональный, динамичный, логика, и т.д. стили программирования. Очевидно, до сих пор это не имеет многого в способе динамических или логических стилей программирования, но это должно скоро прибыть (динамическое программирование, идущее с C# 4.0).

1
ответ дан 30 November 2019 в 06:14
поделиться

Синтаксический Сахар.

Это обеспечивает удобное и более - читаемый способ представить идею, в этом случае крошечный одноразовый метод. Под капотом компилятор разворачивает это до делегата и вызова метода, но это - вещь, делающая работу, не Вас.

4
ответ дан 30 November 2019 в 06:14
поделиться

Я вижу лямбды в C# как очень удобный ярлык для того, чтобы сделать делегатов. Намного более читаемый, чтобы иметь код тут же, где это используется вместо того, чтобы иметь необходимость искать в другом месте определение делегата.

9
ответ дан 30 November 2019 в 06:14
поделиться

Лямбда допускает больше читаемого кода в этом, они позволяют операциям быть определенными ближе на грани использования, а не как текущий метод C++ использования функциональных объектов, определение которых иногда далеко от точки использования. (Это не включает некоторые библиотеки повышения). Я думаю, что ключевой пункт от лямбд - то, что они позволяют более краткий и легкий понять код.

0
ответ дан 30 November 2019 в 06:14
поделиться

Лямбды позволяют Вам, пишут меньше подробного, более выразительного кода. Например, понимания списка ...

BTW, работа идет полным ходом для исследования возможности добавляющих закрытий к Java - тем временем необходимо использовать анонимные классы, вместо этого (ужасные).

2
ответ дан 30 November 2019 в 06:14
поделиться