«Пустое значение» является условностью. Вы должны определить, что означает пустое значение.
- Многие из стандартных библиотечных функций возвращают недопустимое значение для обозначения пустого. Например,
strings.Index
возвращает -1, поскольку все допустимые значения>> 0 - Функции, возвращающие указатель, обычно возвращают
nil
- Существуют функции, которые возвращают пары значений, одно значение и один обозначает действительность. Карты и каналы также используют это соглашение:
value, exists:=someMap[key]
Выше, если exists
истинно, тогда value
имеет допустимое значение. Если exists
равно false
, value
недопустимо (пусто).
- Многие функции возвращают значение и ошибку. Если ошибка не равна нулю, значение не имеет смысла.
Итак, в вашем коде вы можете сделать:
func test(i int)(r int,valid bool){
if i%2==0{
return i,true
}else{
return 0,false
}
}
Или, если у вас есть условие ошибки, вернуть ненулевая ошибка в вашей функции и проверьте, есть ли ошибка, где вы ее вызвали. В случае ошибки любое возвращаемое значение будет «пустым».