
The
12.04.2018
11:13:00
или ручками speed = speed, color = color.

Aleksey
12.04.2018
11:13:57
Разбаловали динамические языки =(

Marlik
12.04.2018
11:14:55
Я ваще не понял, у вас есть структура, но меняется допустим скорость? Ну и?

Google

The
12.04.2018
11:15:33
иммутабельности в Go нету, все что создано в рамках пакета, может быть изменено в рамках пакета. Есть возможность сделать например New() функцию с неэкспортируемыми полями, тогда из-вне пакета нельзя будет изменить поля (если не пробросить API для изменения).

Olzhas
12.04.2018
11:15:45

Marlik
12.04.2018
11:16:30
Ну, какие-то поля структуры будут nil в каких-то что-то будет лежать... чо думать-то.

Aleksey
12.04.2018
11:16:42
Нужно писать
anotherCar := Car{newSpeed, myCar.color, myCar.prop1, myCar.prop2, myCar.prop3, …}
И для изменения каждого свойства есть функция, то есть такое дублировать везде

The
12.04.2018
11:17:48
вообще, есть пакеты, которые копируют структуры в структуры, т.к. емнип reflect.Copy со структурами не работает. Они решают вашу задачу, но нужно понимать, что рефлексия замедляет код.
https://github.com/ulule/deepcopier
вот например, первое что нагуглилось

Aleksey
12.04.2018
11:19:05
Не хватает сахара https://media.giphy.com/media/6bFN1KkQDYJC8/giphy.gif

The
12.04.2018
11:19:31
берите жабаскрипт тогда, там можно все.

yuriy
12.04.2018
11:37:04
я недавно начал переться по пустому return
очень удобно

Daniel
12.04.2018
11:37:31
линтеры не согласны

Google

yuriy
12.04.2018
11:37:36
особенно если ты возвращаешь слайсы, а аппендить к пустому в го можно

The
12.04.2018
11:37:51
пустой return не очень удобен с т.з. читабельности.

Marlik
12.04.2018
11:38:38

yuriy
12.04.2018
11:38:44
потом удобно, когда привыкаешь
ну то есть на 1 строчку меньше
ты не пишешь var list List
он у тебя уже есть, и на самом деле круто получается
щас
func (a *DeathBlow) UseOnTarget() (effects FList) {
effects = effects.Add(target.dealDamage(owner, bs.dmgRangeDefault(), true, true))
return
}
ну там несколько списков и результатов может быть, но вернете вы все одним return
просто запишите что надо

Daniel
12.04.2018
11:40:25
в функции такого размера - да, можно

yuriy
12.04.2018
11:40:41
да, у меня вот мелкие такие штук, это навыки в игре

Marlik
12.04.2018
11:45:18
А, вот вы про что... я думал про другое. Как обычный return который ничего не возвращает...

Alex
12.04.2018
12:03:30

yuriy
12.04.2018
12:04:16
ну это не ооп подход немного
к нилу обращаться через точку

Marlik
12.04.2018
12:06:17
А мне вот не хватает пустого ретурна просто для выхода из функции... привык.

Daniel
12.04.2018
12:06:29
а?!
кто отнял?!

Marlik
12.04.2018
12:07:01
Ды я чот вроде как-то и не знаю как это в го))))
Ругаться линтер буит как минимум....

Daniel
12.04.2018
12:07:19
как везде

yuriy
12.04.2018
12:08:18

Marlik
12.04.2018
12:09:31
Не, без параметров, просто выход. Ща, сваяю.

Google

Alex
12.04.2018
12:11:07
У человека return отняли

Атас
12.04.2018
12:13:58

Marlik
12.04.2018
12:14:02
Ага. Вот https://play.golang.org/p/o1Rrm4c_uqH
Того же eval не хватает...

Атас
12.04.2018
12:19:51
а выхода куда ?
по коду не понятно куда его не хватает из цикла?, из программы ?

Marlik
12.04.2018
12:20:57
Када делаешь return, тебя выбрасывает в цикл for и дёргается следующая функция...

Атас
12.04.2018
12:22:38
ну так и написано в примере и так и работать будет
хотя вместо
func (p *Post) a() {
if p.Title > 0 {
// ...
} else {
return
}
}
я написал бы просто
func (p *Post) a() {
if p.Title > 0 {
// ...
}
}

Marlik
12.04.2018
12:23:41
Не, не буит. Нужно что-то возвращать всегда. Единственное что не факт проверять можно что вернул.

yuriy
12.04.2018
12:24:05

Marlik
12.04.2018
12:24:12
)))))

Marlik
12.04.2018
12:25:47
Наверное я слишком просто описал что мне нужно)))

Атас
12.04.2018
12:26:17

Kirill
12.04.2018
12:26:49

Атас
12.04.2018
12:26:51

Marlik
12.04.2018
12:28:29

Атас
12.04.2018
12:30:51
нет ошибля не так

Google

X
12.04.2018
12:32:06
Во https://go-tour-ru-ru.appspot.com/methods/9
я посмотрел, и все равно не понял.вот я сделал https://pastebin.com/HhnAF3eA и вот пример кода с сайта https://ru.stackoverflow.com/a/436577 - результат один, то что по ссылке https://go-tour-ru-ru.appspot.com/methods/9 - тоже можно все сделать методами структур

Атас
12.04.2018
12:34:14
так
func (p *Post) a() {
if p.Title > 0 {
// ...
return
}
if !выражение {
// ...
return
}
....
if выражение_ last{
// ...
}
}

Marlik
12.04.2018
12:35:48

Атас
12.04.2018
12:36:22
а почему нет

Marlik
12.04.2018
12:47:59
Не могу даже пример придумать...

Атас
12.04.2018
12:50:58
не , ты определись функция возвражает значения или нет , там чуть разные подходы

Admin
ERROR: S client not available

Nikita
12.04.2018
13:12:50
Коллеги, привет!)
Прошу помощи)
Есть 2 типа строк с диапазоном к примеру:
1. N13 - N19
2. M19.1 - M19.9
Есть варианты, как вывести все промежуточные последовательности без написание велосипеда?)
N13,
N14,
...,
N19
и
M19.1,
M19.2,
...,
M19.9
Спасибо :)

Daniel
12.04.2018
13:13:25
насколько я знаю, нет

Nikita
12.04.2018
13:16:19
Хорошо)
Тогда к велосипеду)
Как правильно float64 прибавлять на 0.1 чтобы не получить 0000000000000... ?)
Я видел примеры c +0.5, но это костыль какой то))

Alik
12.04.2018
13:18:41
я думаю округлять после каждого добавления

Marlik
12.04.2018
13:25:39

Nikita
12.04.2018
13:28:01

Marlik
12.04.2018
13:30:15
Ну прально, сначала их нуно во что-то перевести, например в инт если мне память не изменяет, сложить, а потом обратно... а кто-то даже советует считать отдельно всё что до точки и после неё... тот ещё геморой. Взяли таки на блокчейн вакансию кого-то))))

Nikita
12.04.2018
13:32:32
Блин, гемор же) Для таких велосипедов в стандартной либе просто обязано что нибудь быть)

Marlik
12.04.2018
13:34:02
По моему нету, всё ручками.

Katerina
12.04.2018
13:47:07
#вакансия #петербург
Есть задачи на GO
Привет всем! Ищу в команду Full Stack разработчика (PHP) в Петербурге. У вас есть знакомые или друзья, кто ищет новый проект?
Требования:
*Опыт разработки приложений на платформе PHP от 2 лет;
*Уверенные знания SQL, CSS, JS, Angular;
*Опыт работы с фреймворками (желательно Zend);
*Знание *nix систем;
*Умение адекватно планировать свою работу, управлять качеством, формировать и отвечать за согласованные сроки;
*Знание методологий разработки;
*Будет преимуществом хорошее знание Go, умение автоматизировать процессы скриптами на Bash, Ruby, Python.
подробности: https://spb.hh.ru/vacancy/25349325

Google

Makkusu
12.04.2018
13:49:58

Атас
12.04.2018
13:50:24

Marlik
12.04.2018
13:52:10

Kirill
12.04.2018
13:52:23

Nikita
12.04.2018
13:53:02
Ну я так сделал))
Пока что работает как надо :)

Marlik
12.04.2018
13:56:15

Yuriy
12.04.2018
15:32:53
Всем привет!
Народ подскажите кто сталкивался с такой проблемой.
Реализовал websocket сервер на Go. Завернул его через реверс-прокси Nginx. Все вроде нормально. Но если вдруг наступает read timeout то соединение рвется nginx-ом. Все логично.
Однако web-клиент отваливается нормально. А сервер на Go запускает бесконечный цикл четние данных с клиента и нагружает процессор до 100.
Стал копать причину... Оказалось что nginx при таком таймауте начинает присылать на сервер opCode=0x0 (OpContinuation ) и загоняет его в цикл.
Вопрос!? Это нормальное поведение со стороны nginx и мне нужно отловить этот opCode на сервере и грохнуть коннект или это баг nginx?

Daniel
12.04.2018
15:34:03
это баг, но неизвестно, чей. я такого никогда не видел

Yuriy
12.04.2018
15:34:39
Походу баг все таки либи.. Попробовал использовать другую. Все норм..

Mykyta
12.04.2018
16:27:51

Makkusu
12.04.2018
17:16:17
Добрый вечер. Подскажите в чем проблема при работе с либой xlsx от tealeg. Данные на вход подаю нормальные без дубликатов.
Открываю файл и в цикле перебираю sheet. Перебираю массив с данными во вложенном цикле и создаю каждый раз новую строку и ячейки. В итоге он мне id пишет неверный.
Попробовал записать в новый файл. Всё повторяется. Пишет все данные верно кроме первой ячейки id.
Код примерно такой
file = xlsx.NewFile()
sheet, err = file.AddSheet("Table")
functions.Check(err)
for _, dataElem := range data {
row = sheet.AddRow()
cell = row.AddCell()
cell.Value = dataElem.Id
. . . // Добавляю другие ячейки
}


Yuriy
12.04.2018
17:18:05

Mykyta
12.04.2018
17:23:03

Yuriy
12.04.2018
17:26:36