Sergey
0_о ребят, а в 1.11 go get реп клонит в текущую директорию?
или я чего-то не понимаю
Sergey
а как же GOPATH?
Aleksandr
В gopath
Sergey
блин, а теперь в gopath, неужели по запарке git clone сделал вместо go get
Roman
короч по поводу констант и иммутабельных типов я выяснил, что иммутабельные типы заменяют константы:
const Constant string = "rvalue"
var Immutable const string = "rvalue"
Immutable и Constant это практически одно и то-же
это даже исправляет такие дефекты языка как отсутствие возможности использования не-скалярных типов в качестве констант:
const ConstantSlice []string = []string{"first", "second"}
вот так выглядит решение:
var ConstantSlice const []string = const([]string {"first", "second"})
Vlad
Sergey
но не могу воспроизвести ситуацию
YᑌᖇIY
Artem
не doesn't а lack of, потому что string
🏁Александр
а когда канал перешел на инглиш?
Artem
тебя тоже поправлю, не инглиш, а рунглиш
все, ушел
Roman
https://github.com/romshark/Go-2-Proposal---Immutability#114-inconsistent-concept-of-constants
.
Ребята из Авито действительно странные ) Не совсем понял их "проблемы"
𝗠𝗮𝗿𝘂𝗳
Всем салют,помогите разобраться
есть два роута:
/users
/user/{id}
первый показывает в index.html template ,через {{range . }}, таблицу юзеров их данные
второй тоже использует index.html, но при выводе данных консоль ругается
executing "index.html" at <.>: range can't iterate over
какие есть способы избавиться от этой ошибки?
Slava
а что в контекст шаблона передаётся?
Slava
для /user/{id}
𝗠𝗮𝗿𝘂𝗳
та же структура
𝗠𝗮𝗿𝘂𝗳
что и для первого роута
Slava
а код можешь показать?
𝗠𝗮𝗿𝘂𝗳
<tbody>
{{ range . }}
<tr>
<td>{{ .FullName }}</td>
<td>{{ .Contact }}</td>
<td>{{ .SerialNumber }}</td>
<td>{{ .PurchaseDateTime }}</td>
<td>{{ .Сhecked }}</td>
</tr>
{{ end }}
</tbody>
Slava
а то на словах у всех всё то же
Slava
код вызова шаблона
𝗠𝗮𝗿𝘂𝗳
сек
𝗠𝗮𝗿𝘂𝗳
func (c *AuthenticationControllers) SelectUserById() http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
params := mux.Vars(r)
id, _ := strconv.Atoi(params["id"])
...........................
user, _ := c.srv.repo.GetPersonById(id)
templates.ExecuteTemplate(w, "admin.html", user)
}
}
𝗠𝗮𝗿𝘂𝗳
...достаточно?
Slava
ну вот, а в том где /users/ как передаётся?
Maksym
Maksym
Ты итерировать пытаешься по переменной без имени
𝗠𝗮𝗿𝘂𝗳
func (c *AuthenticationControllers) SelectUsers() http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
.........................
users, err := c.srv.repo.GetPersons()
templates.ExecuteTemplate(w, "admin.html", users)
}
}
𝗠𝗮𝗿𝘂𝗳
Slava
вот, в первом случае ты передаёшь один объект и пытаешься по нему итерироваться
Slava
во втором случае передаёшь список объектов и пытаешься по нему итерироваться
Slava
у тебя должны быть либо 1) разные шаблоны, 2) в обоих случаях список
𝗠𝗮𝗿𝘂𝗳
спасибо, думаю 2ой вариант использую
𝗠𝗮𝗿𝘂𝗳
жаль нет бота благодарности
𝗠𝗮𝗿𝘂𝗳
@gothankbot @m0sth8 😁
Slava
:)
Anonymous
ребят, подскажите пожалуйста как заэкспортить структуру и заимпортить её в другом файле? (в моем кейсе модель)
гуглил, не очень помогает
Daniel
вопрос не ясен
Daniel
любы типы, названия которых начинаются с заглавной буквы, экспортируются
Daniel
в другом пакете к таким типам обращаются с указанием имени пакета
qurabay
Плиз помогите например как обработать 1 млн запросов объясните
Misha
Всем доброго времени суток! Есть апи связанное с sqlitе. Для тестирования хендлеров, которые получают данные из бд или помещают их туда, нужно как то сфабриковать саму бд. То есть чтобы на уровне тестирования было понятно, что есть в бд и что в ней происходит. Данные у меня очень объемные и как-то нахожусь в растерянности, как тестировать это все. Поначалу думал, что можно создать так называемую test_db, закинуть туда руками данные и дальше с этим работать. Нет ли более оптимального метода для данной ситуации? Или все действительно так, ручками?
Maksym
Maksym
С кодом и обьяснением
qurabay
Можешь скинуть? пж
Maksym
Если делать параллельно, то надо через диспетчер и воркеров
Maksym
Окей
qurabay
Спасибо вам !!
Maksym
http://marcio.io/2015/07/handling-1-million-requests-per-minute-with-golang/
Maksym
Еще от мейла на хабре статья есть
qurabay
Maksym
Если хочешь могу скинуть свой пример реализации
qurabay
Да скиньте !
Maksym
Но я бы советовал статью почитать и разобраться
Maksym
В лс кину
qurabay
Ок
Anonymous
в другом пакете к таким типам обращаются с указанием имени пакета
это все понятно, предположим, я делаю пакет user, где описываю структуру модели User, в другом пакете импорчу, в виде:
import user_model "path/to/package"
доступ к ней будет по: user_model.User
есть ли возможность как-то заимпортить, чтобы доступ был просто по User, без user_mode.User ?
Илья
Import . "/path/to/package"
Илья
Потому что это плохой стиль, но это то, что вы спросили
Anonymous
Anonymous
если не сложно – посдкажите, пожалуйста
Anonymous
я вижу вариант объеденить все модели под 1 пакет, импортить его и использовать нужную структуру, типа: models.User
Daniel
Или так, или эдак
Илья
Сделать пакет models, положить туда User, обращаться как models.User
Anonymous
ага, спасибо!
Anonymous
так и сделал на текущий момент
Roman
https://www.youtube.com/watch?v=ZbtB1Aqc41A
JohnnyPitt
Подскажите пожалуйста такой вопрос, скачал проект, запустил dep ensure -v, оно создало vendor папку и включило мой проект туда. Почему это могло случиться и как это можно поправить?
Vladimir
Nikita
Sergio
Nikita