Ошибка при кросс-компиляции из Windows в Linux?

Попробуйте помещать ваше пространство имен в { ... } следующим образом:

string xfaNamespace = "{http://www.xfa.org/schema/xfa-template/2.6/}";
0
задан Flimzy 17 January 2019 в 10:46
поделиться

1 ответ

Я не уверен, как это может работать в Linux, не должно. Эта строка:

    defer erh.Check(rows.Close())    

выполнит rows.Close() немедленно , сохранит возвращаемое значение, затем отложит только вызов на erh.Check. Вот как работает отсрочка - аргументы оцениваются сразу. Из документов :

Каждый раз, когда выполняется оператор «defer», значение функции и параметры для вызова оцениваются как обычно и сохраняются заново, но фактическая функция не вызывается .

Если вы хотите использовать такую ​​конструкцию, она должна быть в замыкании, что-то вроде:

defer func() {
    erh.Check(rows.Close())
}()

, чтобы не было аргументов для оценки во время defer.

0
ответ дан Adrian 17 January 2019 в 10:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: