Dmitry
Vasily
В смысле нету?
Vasily
Структура - это сравниваемый тип
Vasily
В случае если её типы сравниваемые
Vasily
https://golang.org/ref/spec#Comparison_operators
Vasily
Если не сравниваемые - DeepEqual как подсказывают выше
Dmitry
А если будет слайс в структуре, как тогда сравнение пройдёт?
Vasily
нет, слайс только с nil сравнить можно через ==
Vasily
если слайс - то тебе в DeepEqual
Vasily
потому что это не сравниваемый тип. и структура с после типа слайс тоже будет енсравниваемой
Dmitry
Ага, прочитал по твоей ссылке
Anonymous
мапа тоже не сравниваемый
Anonymous
2 самых распространненых типа не сравниваемые
Valentin
Сравниваемый, только указатели, а не значения -)
Anonymous
ну и нах это надо )
Anonymous
2 самых распространненых типа не сравниваемые
У авторов Go особый взляд на нужный функционал языка. Например, нет ещё нескольких часто используемых вещей. Пара штук из того, что я встретил:
- нет функции проверки наличия файлов
- нет функции копирования файлов
nikita
Anonymous
nikita
по-моему прочитать из файла сразу в новый это очень красиво )
Anonymous
Илья
Anonymous
nikita
Илья
Илья
просто я не понимаю, почему это должно быть частью стандартной библиотеки, если это реализуется в 3-5 строк? :)
Илья
то, что сделали copy/copybuffer/copyn - вот это круто :)
Anonymous
ceiling cat
Сахар лишним не бывает :)
Anonymous
Dmitry
Dmitry
или os.Stat()
Anonymous
Ivan
Some other error - какая жесть. А как же perror иже с ним?
Dmitry
это не так важно в вопросе проверки существования файла))
Anonymous
Если в стандартную либу добавить isFileExist, то
а) обратная совместимость не поломается
б) будет рад как минимум один прогер (я 😄).
Минусов не вижу ))
Stepan
Я заранее извиняюсь за тупые вопросы. Скажите кто что использует для конфигурационных файлов?
Anonymous
viper
Anonymous
Dmitry
Stepan
@NXShock , @antelman спасибо
Dmitry
Dmitry
http://man7.org/linux/man-pages/man2/open.2.html
Anonymous
Alexander
А мне нравится, что нет isfileexists. Нафиг лишнее действие? Сразу говоришь, 'открой файл'. А если его нет, или еще какая то беда, тогда отлавливаешь ошибку.
ceiling cat
но ошибок может быть много, не?
Anonymous
Alexander
Ну и отлично. видишь ошибку.
Мне кажется это лучше, чем isfileexist, isfilereadonly, isfileчтототам
Alexander
А если нужно просто проверить наличие файла, то чтото неверно в постановке задачи 😄
Anonymous
Сэкономлю аж 2 строчки при юзании isFileExist 😄
Anonymous
а то, что round нет?
Aleksandr
Alexander
Я бы попросил это сделать оболочку )
Anonymous
nikita
Mike
nikita
В красивом будет 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)
}
я правда не понимаю, в чем смысл)
nikita
error все равно будет
nikita
ну вставь switch если хочешь обработать отдельно, все равно лучше не будет
Anonymous
Смысл в том, что сразу понятно назначение кода.
Alexey 〒.
ну заменишь _, err := os.Stat("/path/to/file"); !os.IsNotExist(err) на isExist("...")
Сильно читаемость повысится?
Alexey 〒.
if все равно останется, будет лишь немного короче
nikita
Anonymous
дай пример кода, правда
if !os.IsFileExists("file.txt") {
fmt.Println("Файл не существует")
}
Oleksii
Anonymous
Anonymous
nikita
nikita
nikita
он про это и говорит