Сообщение об ошибке: «паника: ошибка во время выполнения: неверный адрес памяти или разыменование нулевого указателя». Фактическая ошибка - разыменование нулевого указателя.
Когда указатель pugForm равен nil, тогда pugForm.sName не определен. Вы хотите, чтобы это было специальное значение, например, null в SQL или NaN в плавающей точке. Теперь вам нужен специальный набор правил для всех операций, а не только равенство.
Разыменование нулевого указателя почти всегда неверно. Среда выполнения должна возражать, если это произойдет. Если это не так, избегайте проблемы, проверяя на ноль. Исправьте ошибку, не пытайтесь сделать вид, что этого не произошло.
Какой вывод вы ожидаете от этой программы?
package main
import (
"fmt"
)
func main() {
var i int
var p *int
var b bool
b = i == *p
b = i <= *p
b = i >= *p
i += *p
i -= *p
i *= *p
i /= *p
i %= *p
i = *p << uint(i)
i = *p >> uint(i)
fmt.Println(i, p, b)
}