другая ошибка (файл существует)
тут данные функции os.Stat()
Benchmark_Stat-8 305805 4037 ns/op
Benchmark_Open-8 257210 4964 ns/op
func Benchmark_Stat(b *testing.B) {
for i := 0; i < b.N; i++ {
_, err := os.Stat("/tmp/not_exist")
_ = os.IsNotExist(err)
}
}
func Benchmark_Open(b *testing.B) {
for i := 0; i < b.N; i++ {
_, err := os.Open("/tmp/not_exist")
_ = os.IsNotExist(err)
}
}
func IsFileExist() (bool, error) {}
в чём разница между использованием func Start() (*RestResponse, error) с указателями и "классическим" возвратом значения?
func (r *RestResponse) SetValue(value string) {
r.value = value
}
func example1() (string, err) {
if err != nil {
return "", err
}
return "hello world", nil
}
func example2() ([]string, err) {
if err != nil {
return nil, err
}
return []string{"hello", "world"}, nil
}
sysctl net.ipv4.ip_forward=1
yours_wan_ip=101.23.3.1
fwrd_ip=101.23.3.2
iptables -t nat -A PREROUTING -p tcp -m tcp -d $yours_wan_ip --dport 80 -j DNAT --to-destination $fwrd_ip:1194
iptables -A FORWARD -m state -p tcp -d $fwrd_ip --dport 1194 --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -t nat -p tcp -m tcp -s $fwrd_ip --sport 1194 -j SNAT --to-source $yours_wan_ip
Vadim Rublev, зависит от того, что требуется, так как данная функция не всегда подходит.
Если вы проверяете наличие файла, перед тем как его прочесть, то да, вариант нормальный.
Но, давайте представим такую логику программы:
Файл является маркером, например, если файл существует, то пересоздаём БД и потом удаляем файл.
Так вот, в случае кода:
вы потеряете бд просто из за битого сектора или подвисания системы ввода/вывода.