@gogolang

Страница 775 из 1630
Andrey
25.01.2018
16:15:06
Как go знает сколько памяти выделять под string?

Aleksandr
25.01.2018
16:16:26
https://blog.golang.org/slices

Andrey
25.01.2018
16:19:41
То есть если есть struct у которого есть стринговое поле, размер этого стракта будет разный взависимости от того что впихнули в стринг? Или это поле будет поинтером ведущим на аррей который хранится где-то отдельно в памяти?

Alexander
25.01.2018
16:20:33
Это поле - структура фиксированного размера, одно из полей которой - указатель на буфер, который уже может быть разной длины у разных строк

Google
Andrey
25.01.2018
16:21:02
понял, спасибо

Max
25.01.2018
16:23:34
Поинтер всегда фиксированного размера (4 или 8 байт в зависимости от архитектуры), а вот данные на которые он указывает могут быть уже любого размера.

Andrey
25.01.2018
16:35:39
Ага, проверил сейчас с помощью unsafe.Sizeof, действительно 8 байт занимает struct, как бы ещё померить сколько занимает struct + все данные одним вызовом, а не по отдельности через len(struct.field)

Alexander
25.01.2018
16:37:01
func (item *MyType) Length() int64 { .... } :)

А для чего такое нужно?

Andrey
25.01.2018
16:38:07
Просто ради интереса :) Наткнулся тут на сайтик интересный http://golang-sizeof.tips/

Алексей
25.01.2018
18:54:06
Уважаемые знатоки, есть вопрос... type A struct { Perinods []string } type B struct { A ... } type C struct { A ... } func Some(someStruct A){ var asd []someStruct ... return asd } b := Some(B) c := Some(C) Возможно ли сказать функции, что в аргументы на принимает любую структуру, в которой есть A ? как сложно это объяснить не в терминах ооп -_-

Илья
25.01.2018
18:55:49
зачем?

что вы хотите сделать с []someStruct?

Алексей
25.01.2018
18:57:25
в терминах ооп, мне нужно как аргумент принимать любого наследника А

Aleksandr
25.01.2018
18:58:29
а сейчас не принимает?

Google
Aleksandr
25.01.2018
18:59:01
работай с интерфейсами

Илья
25.01.2018
18:59:26
если ты собираешься дальше работать только с методами A, то их можно реализовать (допустим GetPerinods) назвать интерфейс Perinoder, и потом собирать массив, итерироваться и делать что хочешь

Алексей
25.01.2018
19:00:09
зачем мне нужно... У меня есть несколько структур которые отличаются внутренностями, но у них всех есть одиннаковое поле, и мне надо принимать на вход любую из этих структур что бы работать с этим параметром, причем мне надо создавать срез точно таких же структур при работе функции

Алексей
25.01.2018
19:00:44
Используй интерфейсы
как создать интерфейс с полем?

Aleksandr
25.01.2018
19:01:04
Илья
25.01.2018
19:01:07
сделай метод, возвращающий поле

как я писал выше ?

Мерлин
25.01.2018
19:01:16
как создать интерфейс с полем?
Никак, тебе нужно сделать интерфейс с методами для работы с полем

Алексей
25.01.2018
19:01:59
эх... понятно...

Мерлин
25.01.2018
19:02:51
Чтобы получить конкретные типы внутри интерфейса используй type switch

Mykyta
25.01.2018
19:45:58
как создать интерфейс с полем?
Это же тебе не сишарп какой-то ? Никак. Интерфейсы только описывают методы

эх... понятно...
Никакой тайпсвитч не нужен. Канонично делать просто так: https://play.golang.org/p/OhPdyAI4bOZ

Marlik
26.01.2018
02:43:16
Люди, как найти ошибку которую редактор не видит. Выполняю скрипт, он ругается на синтаксическую ошибку. Редактор в упор не видит где, и не подсвечивает. Есть какие-нибудь трюки, модули может? Редактор Atom.

Эмин
26.01.2018
02:44:13
Поставь GoLand

Он увидет

Marlik
26.01.2018
02:52:35
Он увидет
Во, точно, у меня стоит, щас гляну.

Он увидет
И он не видит)) 2018/01/26 06:05:52 near ")": syntax error Process finished with exit code 1

Andrew
26.01.2018
03:27:43
А компилятор номер строки выдаёт?

Google
Marlik
26.01.2018
03:30:00
Неа. Вот хз как искать, понятно где-то ошибка, вот как найти?

Andrew
26.01.2018
03:31:41
Кидай полный вывод компилятора, чо та падазрительна!

Marlik
26.01.2018
03:32:57
Нашёл, щас ошибку покажу.

Slava
26.01.2018
03:33:02
Может это парсер какой или шаблонизатор

Marlik
26.01.2018
03:35:04
func InsertUser(db *sql.DB, p *DATA) (lastID int64, err error) { stmt, err := db.Prepare("INSERT INTO data (ChatID, MessageID, StateWhat, PathWhere, ) VALUES (?, ?, ?, ?)") Запятую оставил после PathWhere,

И ни один редактор не заругался, компилятор не увидел.

Alexey
26.01.2018
03:39:42
Ну так это sql с чего бы им ругаться

Marlik
26.01.2018
03:41:50
Понятно, значит надо поаакуратнее с SQL.

А что подразумевается под контекстом? https://golang.org/pkg/database/sql/#DB.QueryContext

Alexey
26.01.2018
04:47:21
QueryRowContext executes a query that is expected to return at most one row. QueryRowContext always returns a non-nil value. Errors are deferred until Row's Scan method is called. If the query selects no rows, the *Row's Scan will return ErrNoRows. Otherwise, the *Row's Scan scans the first selected row and discards the rest.

Так вот же

Marlik
26.01.2018
04:52:24
Иэээх, было бы на русском.))

Alexey
26.01.2018
04:54:27
В гугл транслэйт загони

Andrew
26.01.2018
05:13:12
В гугл транслэйт загони
> ОНА СО МНОИ, УГЛЕПЛАСТИК. ТАК ОХЛАДИТЕ ТРА****Е, Я РАССМАТРИВАЮ ЕЕ ПОЛЬЗУ

Alexey
26.01.2018
05:20:34
?

> ОНА СО МНОИ, УГЛЕПЛАСТИК. ТАК ОХЛАДИТЕ ТРА****Е, Я РАССМАТРИВАЮ ЕЕ ПОЛЬЗУ
Да не там вроде перевод так себе, но вроде понятно что к чему

Linux
26.01.2018
05:57:09
> ОНА СО МНОИ, УГЛЕПЛАСТИК. ТАК ОХЛАДИТЕ ТРА****Е, Я РАССМАТРИВАЮ ЕЕ ПОЛЬЗУ
Сейчас на нейронках транслиты, получше стали перевдоить

Andrew
26.01.2018
05:58:24
Сейчас на нейронках транслиты, получше стали перевдоить
В нейронках нет души. А вот автоматические переводчики переводили так, что мемуары, получившиеся в результате переводов, попали в историю! ?

Slach
26.01.2018
07:53:07
Всем привет а есть способ из var db *sql.DB или из var DSN string вытащить имя базы данных? просто проблема в том, что СУБД разные в sqlite "имя базы данных" вообще отсутсвтует как класс а в clickhouse например может задаваться с именем кластера есть https://github.com/xo/dburl но он наружу выдает в основном url.Path наружу... а его в CREATE DATABASE IF NOT EXISTS не пришить

Google
Andrew
26.01.2018
08:31:25
И с какой БД работаешь? В гугле вижу есть решения для sqlserver и postgres.

Vasiliy
26.01.2018
08:38:11
А как ты соединяешься с базой, не зная имени БД?
https://monosnap.com/file/Z8OWI4jXNQ3ImJc4XyWTnz9Sa1thCv ps не удержался :)

Artem
26.01.2018
08:39:46
https://golanglibs.com/top?q=dsn

вот немножно пригорает от терминологии... почему в Гоше делегирование метода называют встраиванием? ну ведь проще было сказать так, как привычно всем, зачем путать то.

Slach
26.01.2018
09:12:39
А как ты соединяешься с базой, не зная имени БД?
имя БД в DSN задано не в явном виде

Admin
ERROR: S client not available

Aleksandr
26.01.2018
09:13:22
Slach
26.01.2018
09:13:25
DSN кодируется а-ля URL из этого URL protocol+transport://user:password@host:port/вот тут в разных субд РАЗНОЕ!!

Aleksandr
26.01.2018
09:14:08
DSN кодируется а-ля URL из этого URL protocol+transport://user:password@host:port/вот тут в разных субд РАЗНОЕ!!
создавая соединение с бд, ты же знаешь что прописываешь в dsn

Marlik
26.01.2018
09:15:09
Есть база, есть структура для этой базы. Есть функции которые пишут в базу и читают из неё. Есть как минимум три повторяющиеся функции, для апдейта одного из полей этой базы. Две из них отличаются лишь типами. Вот сижу и думаю как дальше действовать. 1. Сделать функции записи, селекта, апдейта методами структуры, упихать три повторяющиеся функции в интерфейс. 2. Оставить как есть. 3. Что-то ещё.

Slach
26.01.2018
09:17:25
создавая соединение с бд, ты же знаешь что прописываешь в dsn
прописываю не я ;) я могу только провалидировать через dburl какой нибудь но вытащить проблема потому что понятие БД оно РАЗНОЕ для разных СУБД там где процесс на коннект есть БАЗА в коннекте + СХЕМЫ для имен таблиц там где тред на коннект есть много БАЗ а во всяких кластерных есть КЛАСТЕР.БАЗА

Artem
26.01.2018
09:17:50
Мб, потому, что встраиваются структуры, а делегируется вызовы методов?
нет, встраиванием в том числе называется указание ссылки на функцию в структуре, а это в чистом виде делегирование

Marlik
26.01.2018
09:50:56
Есть база, есть структура для этой базы. Есть функции которые пишут в базу и читают из неё. Есть как минимум три повторяющиеся функции, для апдейта одного из полей этой базы. Две из них отличаются лишь типами. Вот сижу и думаю как дальше действовать. 1. Сделать функции записи, селекта, апдейта методами структуры, упихать три повторяющиеся функции в интерфейс. 2. Оставить как есть. 3. Что-то ещё.

meehalkoff✪
26.01.2018
10:43:00
filepath.Walk(path, func(path string, info os.FileInfo, err error) error { if incompleteRegxp.MatchString(path) { if aacRegxp.MatchString(info.Name()) { if info.ModTime().Before(currentTime) { os.Remove(path) counter++ } } } return nil }) Это можно как то *красиво * написать?

Alexander
26.01.2018
10:52:50
Andrew
26.01.2018
10:54:27
Google
meehalkoff✪
26.01.2018
10:54:42
я понял, норм код.

John
26.01.2018
10:55:08
ну вложеность ифов не оч хорошо

Alexander
26.01.2018
10:55:44
да, все условия не обязательно в одну строчку. Можно переносить

John
26.01.2018
10:55:55
if !incompleteRegxp.MatchString(path) { return } if !aacRegxp.MatchString(info.Name()) { return }

хотя бы так

Alexander
26.01.2018
10:56:56
filepath.Walk(path, func(path string, info os.FileInfo, err error) error { if incompleteRegxp.MatchString(path) && aacRegxp.MatchString(info.Name()) && info.ModTime().Before(currentTime) { os.Remove(path) counter++ } return nil })

John
26.01.2018
10:57:28
valid := ncompleteRegxp.MatchString(path) && aacRegxp.MatchString(info.Name()) && info.ModTime().Before(currentTime) if valid

Andrew
26.01.2018
10:57:57
Нужно голосование, какой вариант самый красивый ?

John
26.01.2018
10:58:19
ломает чувство прекрасного смотреть 10 строчек с && и фиг пойми на что вообще условие

meehalkoff✪
26.01.2018
10:59:07
главное что мой вариант не говнокод)

я ж начинающий писатель на го

Alexey
26.01.2018
11:15:53
Дерево наверное строит)

meehalkoff✪
26.01.2018
11:16:14
а что вы пытались решить?
раз в час(к примеру) удалять файлы из определенной дирректории

Страница 775 из 1630