Я новичок - просто играю с ним - но я написал инструмент командной строки - я вызываю около 30 различных функций, которые return x, err
. В каждом случае - то, что я хочу сделать, - это просто паника, если есть ошибка - в принципе все работает отлично, или все это терпит неудачу.можно создать функцию типа (шаблона) в Golang
Я знаю, что есть template.Must(t Template*, err Error) Template*
- и я знаю, что могу сделать check(something interface{}, err Error) interface{}
- но чтобы использовать его, я должен сделать тип, который противен.
ли каким-либо образом можно сделать своего рода родовой функции panicIfError
таким образом, что я могу сделать что-то вроде
x := panicIfError(ioutil.ReadFile(fileName))
и х выйти с правильным типом?
(Я видел много людей, которые помещают if на одной строке - на мой взгляд, жертвует слишком большой удобочитаемостью - в настоящее время мое единственное решение - сделать перегрузку panicIfError
для каждого используемого типа, который не используется ideal)
, что на самом деле то, что я сделал на данный момент - кажется, наименьшему из всех зол - возвращение интерфейс {} и просто добавить утверждение типа каждый раз, когда я это делаю. сумасшедший, уродливый, но не такой уродливый, как составная формулировка! :) –