Я пытался выполнить легкое домашнее задание:
Напишите функцию, которая принимает указатель на int. Функция должна проверить, является ли переданный указатель nil. Если это так, функция должна вывести сообщение "Указатель пуст", в противном случае увеличить значение переменной на 1.
Вот мое решение:
package main
import "fmt"
func main() {
a := 0
fmt.Scanln(&a)
checkNil(&a)
}
func checkNil(v *int) {
if v != nil {
fmt.Println("Пустая переменная")
} else {
*v++
fmt.Println(*v)
}
}
Если переменной присвоить значение 1,2,3,4... то все работает, переменная увеличивается на единицу, а если присвоить 0, то все равно переменная увеличивается, и выводится на экран 1, но никак не Пустая переменная:
0
1
Process finished with the exit code 0
Я посмотрел решения других людей, все написано также как у меня, я даже копировал решения и все равно не получалось, но никто не указывал значение 0.
Подскажите пожалуйста, в чем моя ошибка? Как исправить?