
in favor
21.09.2017
12:13:47
но ошибок может быть много, не?

Andrew
21.09.2017
12:15:24

Alexander
21.09.2017
12:15:38
Ну и отлично. видишь ошибку.
Мне кажется это лучше, чем isfileexist, isfilereadonly, isfileчтототам
А если нужно просто проверить наличие файла, то чтото неверно в постановке задачи ?

Google

Andrew
21.09.2017
12:17:31
Сэкономлю аж 2 строчки при юзании isFileExist ?

Mush
21.09.2017
12:24:10
а то, что round нет?

Aleksandr
21.09.2017
12:24:24

Alexander
21.09.2017
12:27:23
Я бы попросил это сделать оболочку )

AxiS
21.09.2017
13:18:37

Andrew
21.09.2017
13:19:33

Никита
21.09.2017
13:20:00

Andrew
21.09.2017
13:20:33

Mike
21.09.2017
13:21:23

AxiS
21.09.2017
13:21:48

Никита
21.09.2017
13:22:12
В красивом будет os.IsFileExists(filename) bool
filePath := "/path/to/file"
if !os.Stat(filePath) {
printf("File doesn't exist");
}
file, err := os.Open(filePath)
if err != nil {
panic(err)
}
или
filePath := "/path/to/file"
file, err := os.Open(filePath)
if err != nil {
panic(err)
}
я правда не понимаю, в чем смысл)
error все равно будет

Google

Никита
21.09.2017
13:22:47
ну вставь switch если хочешь обработать отдельно, все равно лучше не будет

Andrew
21.09.2017
13:23:34
Смысл в том, что сразу понятно назначение кода.

AxiS
21.09.2017
13:24:18
ну заменишь _, err := os.Stat("/path/to/file"); !os.IsNotExist(err) на isExist("...")
Сильно читаемость повысится?
if все равно останется, будет лишь немного короче

Никита
21.09.2017
13:24:49

Andrew
21.09.2017
13:25:45

Alex
21.09.2017
13:26:11

Andrew
21.09.2017
13:26:20

Никита
21.09.2017
13:26:41

Andrew
21.09.2017
13:27:28

Никита
21.09.2017
13:27:53

Andrew
21.09.2017
13:28:35

Никита
21.09.2017
13:29:52

AxiS
21.09.2017
13:30:48

Никита
21.09.2017
13:31:02
он про это и говорит

Andrew
21.09.2017
13:31:21

Никита
21.09.2017
13:31:23
его метод Exists тоже будет вызывать`Open`
просто единственный common кейс, когда тебе надо проверить, есть ли файл, когда ты проверяешь сразу много файлов. а тогда ты просто вычитываешь навания файлов в директории и смотришь на слайс
разве нет?

AxiS
21.09.2017
13:33:20

Google

Andrew
21.09.2017
13:33:26
Короче вот тут мнение разраба
https://stackoverflow.com/questions/12518876/how-to-check-if-a-file-exists-in-go
[...] It's not actually needed very often and [...] using os.Stat is easy enough for the cases where it is required.
Тогда остаётся вопрос, почему нету функции простого копирования файлов.

Никита
21.09.2017
13:34:54
ну он как раз пишет, что это никто не использует

Michael
21.09.2017
13:38:16

Никита
21.09.2017
13:40:04
даже ой

Michael
21.09.2017
13:40:30
но с ос статс как-то через чур

Andrew
21.09.2017
13:41:05

AxiS
21.09.2017
13:41:43

Michael
21.09.2017
13:41:57
юзай команды bash
там и го не нужен для просто скопировать

Никита
21.09.2017
13:42:40

AxiS
21.09.2017
13:42:42
из го вызывать команды bash)

Andrew
21.09.2017
13:43:01

Димка
21.09.2017
13:43:38

Andrew
21.09.2017
13:44:00

Никита
21.09.2017
13:45:01

Aleksandr
21.09.2017
13:45:44
ребят, а вы еще продолжаете?))) третий час подходит к концу

Google

Никита
21.09.2017
13:46:10
скучно (

Andrew
21.09.2017
13:46:25
а реализацию то)
Ты наверно не понял, про что ведём разговор. Вопрос в том, почему на такой простой функционал каждый прогер должен писать свою реализацию вместо того, чтобы вызвать свою функцию из стандартной либы.

Димка
21.09.2017
13:46:45

Никита
21.09.2017
13:47:40

Andrew
21.09.2017
13:48:03
Вот по поводу перемещения https://github.com/golang/go/issues/13766
Ладно, я что-то устал ))

Никита
21.09.2017
13:49:53
да

Michael
21.09.2017
13:50:26
на частоту сферических коней в ваккууме

Andrew
21.09.2017
13:50:52

Michael
21.09.2017
13:51:39
в баре с шмузи

Никита
21.09.2017
13:51:44

Michael
21.09.2017
13:51:49
провели точно хорошо время

AxiS
21.09.2017
13:53:23
в случае создания не нужно париться на счет прав и флагов.
А вот проверка выполняется и без сахары просто

Andrew
21.09.2017
13:55:12

AxiS
21.09.2017
13:58:17

Michael
21.09.2017
14:10:42
а что с виндой не так?

Google

Michael
21.09.2017
14:11:12
ругнуться на отсутствие прав и она может

Zloy Dobriy
21.09.2017
14:11:42

Michael
21.09.2017
14:12:09
ой, всё! (с)

Zloy Dobriy
21.09.2017
14:12:32
ага да

Axm
21.09.2017
15:16:48
делаю простой DI типа того, как описано в этой статье https://appliedgo.net/di/. если у меня все в разных пакетах, то куда будет по фень-шую засунуть интерфейс? т.е. пакет А с методом М1 требует интерфейс И1. структура с методом, который его реализует, находится в пакете Б. интерфейс надо куда класть? в А, Б или третий пакет?

Aleksandr
21.09.2017
15:22:41
поясни, не хочу додумывать, что ты имел в виду
что значит "пакет требует", кого реализовывает?

Axm
21.09.2017
15:36:57

Mush
21.09.2017
15:37:46
субъективный вопрос

Axm
21.09.2017
15:38:09
ну вот мне интересно, кто как думает

Mush
21.09.2017
15:39:03
если все остальное в разных пакетах - то в отдельный пакет, если они все в одном пакете - то в тот же пакет

Aleksandr
21.09.2017
15:40:09
смотри. ты можешь воспользоваться интерфейсом стороннего пакета (пусть и своего), можешь абстрагироваться своим интерфейсом. все зависит от того, насколько ты хочешь сделать несвязанный пакет
хочешь узнать кто как бы сделал, озвучь конкретный кейс

Axm
21.09.2017
15:41:00
да я сразу понял, что можно куда угодно, вопрос куда правильнее?

Aleksandr
21.09.2017
15:41:03
> представь, что Poem, Notebook и Napkin в разных пакетах
это не имеет смысла

Mush
21.09.2017
15:41:22
я бы положил все это в 1 пакет

Aleksandr
21.09.2017
15:41:35

Axm
21.09.2017
15:41:39
чо это? а если у меня много кода и клиенты к разным системам?

Aleksandr
21.09.2017
15:42:07