Anonymous
fmt.Println
у меня всё работает в программе кроме парсера аргументов
Sergey
точнее скорее пустая строка
Aleksey
возьми github.com/pkg/error
Aleksey
если объявил и ничего нне сделал то ккомпилятор должен ругнуться
Slava
vscode вроде как поддерживает дебаг через delve
Anonymous
https://gist.github.com/kinoher/5fe3440776297c5dcf504309a7efbd21
nikita
Sergey
nikita
конечно , почти уверен, что тратишь время на написание своего в рамках другой задачи
Илья
а что ты ожидаешь увидеть в ответе qrgq?
Илья
я по доке и не понял, что там должно лежать, тебе нужно в options смотреть, вроде бы
Vladimir
Vladimir
он тебе заполняет структуру
Vladimir
package main
import (
"fmt"
"github.com/jessevdk/go-flags"
)
//var gr = parser.AddGroup("ss", "aa")
func main() {
var options struct {
Verbose bool `short:"v" long:"verbose" description:"Show verbose debug information"`
File []string `short:"f" long:"file" description:"full path to file ONLY IMAGES"`
Host string `short:"H" default:"127.0.0.1:7779" description:"masterhost (ip:port)"`
// Msg []string `group:"msg"`
}
argq, err := flags.Parse(&options)
if err != nil {
if flagsErr, ok := err.(*flags.Error); ok && flagsErr.Type == flags.ErrHelp {
fmt.Printf("%v", argq)
fmt.Println("1")
} else {
fmt.Println("2")
fmt.Printf("%v", argq)
}
} else {
fmt.Println("#3")
fmt.Printf("%v,,,,,,", options) //[]
}
}
Vladimir
[none-none][20:06:36] vlazarenko@alluminium (~/go/src/blip)$ ./blip -H="127.0.0.1:8989" -v
#3
{true [] 127.0.0.1:8989},,,,,,
Vladimir
равно как и в #3 печатать err было бесполезно, ибо оно в else от if(err != nil), т.е. заведомо всегда nil 🙂
Anonymous
спасибо
Vladimir
не за что 🙂
Anonymous
Nikita
Nikita
я неделю назад дебажил отлично себя чувствовал
Anonymous
норм он пашет
хм вполне может быть я его готовить не умею
Nikita
Nikita
точку сбоку ставишь и нажимаешь f5
Nikita
Я хотел бы помощи умный и прошаренный. Мне человеку который всего полгода в разработке и то только в js. Этот кусок кода не потянет абсолютно
Nikita
https://go-tour-ru-ru.appspot.com/methods/12
Nikita
var t *T
i = t
describe(i)
i.M()
i = &T{"hello"}
describe(i)
i.M()
Nikita
тут создается сначала переменная t с указателем на T?
Nikita
а потом в ту же переменную по указателю записывают данные?
Nikita
это что получается, что структуры как функции в js?
Nikita
что вообще происходит...
Nikita
это получается, что если методу указать указатель, то он может ожидать nil, а если указать значение, то nil в него попасть не может и проверку на нил проверсти невозможно?
Oleg
Oleksii
Потом по этому же i присваивается экземпляр структуры T (адрес его ячейки памяти), поэтому теперь i имеет и тип, и значение
Nikita
выше ссылка на go tour
Oleksii
Это с golang tour
Vladimir
я на самом деле с трудом понимаю применимость такого рода изврата
Oleg
Видимо, так пытаются объяснить, почему интерфейс может быть не nil, хотя в нем нулевое значение.
Vladimir
как оно работает понимаю, а вот нахрена бы оно мне в реальной жизни могло бы понадобиться - нет
Oleksii
Буквально сегодня читал в блоге Cheney, что типизированный nil - это зло :)
Oleksii
И тут на тебе)
Michael
nil это вам не nil
Nikita
Vladimir
в смысле как? 🙂 руками. указатель на нее
Oleksii
Ты не смог бы сделать так:
var t T
t = nil
Oleg
Какая строка? :)
Michael
про гынырыки уже вспоминали в вечерней беседе?
Nikita
Nikita
i = &T{"hello"} и var t *T
Nikita
в чем разница, я не понимаю
Oleksii
аа
А вот так запросто:
var t *T // t = nil
Oleg
Первое - присвоение, второе - объявление
Oleg
;)
Vladimir
var t *T - t = nil
Nikita
хммм
Nikita
а в чем разница t T и t *T
Vladimir
указатель на структуру и дереференс указателя
Vladimir
t T // dereference
Vladimir
t *T // pointer
Oleksii
Oleg
в чем разница, я не понимаю
var t *T объявляет нулевой указатель. t = nil. И когда ты сделаешь i = t в i тоже будет nil.
А когда ты делаешь i = &T{...} ты создаешь новое значение структуры и указатель на него записывает в i. В i уже не nil, а структура со строкой.
Vladimir
ой, да, сорри, прогнал
Vladimir
наоборот 🙂
Oleg
dereference. Сейчас только запутаете человека лишними терминами :)
Nikita
Vladimir
Oleg
Oleg
Присвоение что-то делает
Vladimir