У меня есть функция, которая возвращает либо сообщение об ошибке (String), либо Firestore DocumentReference.Я планировал использовать класс, содержащий и то, и другое, чтобы проверить, является ли сообщение об ошибке ненулевым, чтобы обнаружить ошибку, а если нет, то ссылка действительна.Однако я подумал, что это слишком многословно, а потом подумал, что может быть лучше вернуть переменную.Однако возврат переменной не разрешен.Поэтому я возвращаю динамику и проверяю, является ли результат String, чтобы обнаружить ошибку.IE.
dynamic varResult = insertDoc(_sCollection,
dataRec.toJson());
if (varResult is String) {
Затем, проверив на соответствие, я прочитал следующее от одного из гуру: «Это плохой стиль - явно помечать функцию как возвращающую Dynamic (или var, Any или что-то другое, что вы выберете»).чтобы вызвать его). Очень редко вам нужно об этом знать (только при создании экземпляра универсального типа с несколькими аргументами типа, где некоторые известны, а некоторые нет). "
Я очень счастлив, используядинамическое для возвращаемого значения, если это уместно, но в целом я стараюсь соответствовать передовой практике.Я также очень осведомлен о раздутом программном обеспечении, и я иду на крайние меры, чтобы избежать этого.Вот почему я не хотел использовать Class для возвращаемого значения.
Каков наилучший способ справиться с описанной выше ситуацией, когда тип возвращаемого значения может быть String или, альтернативно, каким-либо другим объектом, в данном случаеFirestore DocumentReference (акцент на очень компактный код)?