@proGO

Страница 93 из 1674
Мерлин
13.05.2016
12:12:52
Lev
13.05.2016
12:12:53
Dmitri
13.05.2016
12:12:58
Для достижения просветления

Maxim
13.05.2016
12:13:24
Метод тыка разве запретили законодательно?

Google
Lev
13.05.2016
12:14:03
Метод тыка разве запретили законодательно?
смотря чем и смотря в кого. есть запрет про возраст согласия, например =)

Мерлин
13.05.2016
12:14:20
Dmitri
13.05.2016
12:15:13
Со смартфона не могу Но вообще так написано в документации
Тут получается несколько иное. Если a слайс, то при операции b:=a структура a скопируется в b. На выходе это будет 2 разных слайса

Maxim
13.05.2016
12:15:56
Со смартфона не могу Но вообще так написано в документации
Для андроида уже сделали песочницу для скриптов Go.

Dmitri
13.05.2016
12:16:36
Да, внутри может оказаться 1 и тот же массив. Но адреса самих слайсов будут различны

Смысл ссылочных типов в том, что они передаются по указателю, а не копируются. Но разделение на ссылочный/не ссылочный типы имеет смысл в языках без указателей. В go указатели есть.

Поэтому и сам спор немного более философский, чем практический

Daniel
13.05.2016
12:20:24
хм... покажи, как она просто увеличит слайс, без перекидывания начений соус вот: https://play.golang.org/p/eqyHEqoqvJ
https://play.golang.org/p/CatzbehYV0 внимательно смотрим, когда случилась переаллокация

[Anonymous]
13.05.2016
12:23:44
Почему в парсере не убрали обязательную запятую в конце?) fmt.Println( pow(3, 2, 10), pow(3, 3, 20), )

Dmitri
13.05.2016
12:24:41
Собственно в java: void function(string a, int b) {} При передаче параметров функции string a передастся по ссылке, int a по значению. Просто потому что оно так заведено. Поэтому string'и - ссылочные типы. int'ы - не ссылочные. А я речь веду про то, что в Go это деление не нужно, т.к. указатель объявляется явно. Поэтому в книге и не описано деление на ссылочные/не ссылочные типы.

Phil
13.05.2016
12:27:01
Google
Daniel
13.05.2016
12:27:30
там много няшного, имеет смысл прочесть и выучить

%T, к примеру

Alexander
13.05.2016
12:28:20
%T в туториале пропагандируется тоже.

Phil
13.05.2016
12:28:22
Согласен да. %v :)

Daniel
13.05.2016
12:28:50
%#+v

Phil
13.05.2016
12:28:55
там много няшного, имеет смысл прочесть и выучить
я скорее к тому, как хорошо в примере это

Daniel
13.05.2016
12:29:04
а

ну - да

Dmitri
13.05.2016
12:34:08
Нет. Тебе уже 10 человек сказали - нет. Попробуй в плейграунде и удивись
Тогда объясни следующий момент: https://play.golang.org/p/CNMSlSRr8j Последние 2 строки выдачи. Адрес 1, содержимое разное. Возможно, адрес отображается таки содержащегося внутри массива, а не самого слайса? Ведь индексы тоже должны где-то храниться?

Daniel
13.05.2016
12:34:57
Почему в парсере не убрали обязательную запятую в конце?) fmt.Println( pow(3, 2, 10), pow(3, 3, 20), )
на этот вопрос есть ответ. препроцессор добавляет в конец любой строки “;” кроме тех строк, что заканчиваются на ({, поэтому последняя , обязательна

Dmitri
13.05.2016
12:35:16
В случае именно ссылочного типа слайсы s1 и s2 должны совпадать, т.к. это на выходе один и тот же слайс.

Если выдача разная, значит таки окромя указателя на массив есть еще некоторая структура, которая хранит идексы. Т.е. есть подлежащий массив [0..n] и несколько слайсов: s1[0 - 11] и s2[0 - 13]

Daniel
13.05.2016
12:37:45
хватит, а?

Dmitri
13.05.2016
12:37:49
На выходе, получается, что да, без вопросов, МАССИВ (как указатель на начало массива) - один, СЛАЙСЫ как структура, имеющая индексы и capacity - разные?

Не, ты не подумай, я ДЕЙСТВИТЕЛЬНО разобраться хочу.

Alexander
13.05.2016
12:38:24
Это просто релокация https://play.golang.org/p/TV2bX-5y3X

Daniel
13.05.2016
12:38:26
да, слайсы разные, да, массив один

именно то, что массив один, и говорит нам, что слайс - ссылочный тип

[Anonymous]
13.05.2016
12:38:49
Daniel
13.05.2016
12:39:29
Спасибо, но чуток все равно не понятно почему нельзя было сделать последний элемент без ,
можно было, но путем усложнения препроцессора. он должен был бы начать синтаксис понимать.

Google
Dmitri
13.05.2016
12:40:23
Вот! И я о том же! Слайс нельзя считать ссылочным типом. s2 := s1, получается, КОПИРУЕТ структуру, в которой есть, да, без базара, ссылка (указатель) на массив, который неизменен, т.к. он указатель, и индексы, которые в исходном и конечном слайсе различны.

Т.е. тут я прав? Скажите "Да", и я, успокоившись, пойду фильм смотреть)

Daniel
13.05.2016
12:41:08
кого интересует эта структура, а? данные твои лежат в массиве и передаются по ссылке. все. хватит, правда

Daniel
13.05.2016
12:41:30
копирует, конечно

Sergey
13.05.2016
12:41:34
Dmitri
13.05.2016
12:41:43
В примере я вижу указатель на массив данных, не на слайс, подозреваю

Daniel
13.05.2016
12:41:55
ту самую структуру на три один int64 и два int

[Anonymous]
13.05.2016
12:43:32
Dmitri
13.05.2016
12:43:49
копирует, конечно
Вот! Спасибо! Были бы тут плюсы, поставил бы! Итого, слайс, упрощая, это структура из указателя на массив и 2 индексов. И эта структура копируется. При этом, получается, сам массив данных - общий.

Daniel
13.05.2016
12:44:01
Dmitri
13.05.2016
12:44:33
Спс, слайс не тождественнен ссылке, я спокоен, отчаливаю)

Dmitri
13.05.2016
12:44:39
Всем спс.

[Anonymous]
13.05.2016
12:45:19
он весь из этих моментов...
Эм, не совсем понял, "от весь" это значит много?)

Daniel
13.05.2016
12:45:36
я поправил

Phil
13.05.2016
12:45:46
ту самую структуру на три один int64 и два int
а ну это хрен с ним. это "под капотом"

Daniel
13.05.2016
12:46:26
именно

но не совсем (урроды!)

[Anonymous]
13.05.2016
12:47:00
Daniel
13.05.2016
12:47:18
если ты внутри функции будешь делать слайсу аппенд - надо передать ссылку на слайс, иначе все, что произойдет - произойдет с копией слайса

Google
Daniel
13.05.2016
12:47:21
ненавижу

[Anonymous]
13.05.2016
12:49:32
немного возникает когнитивный диссонанс fmt.Println(1, 2) и fmt.Println(one(), two(),)

Хотя можно и fmt.Println(1, 2,) но gofmt убирает ,

Хотя кроме этого пока подвоха не вижу, Go вообще как серебряная пуля выглядит

Daniel
13.05.2016
12:52:39
ну вот граница применимости довольно близко

но - да, как-то так получилось, что все, что я пишу последние полтора года - я пишу на go

Плюшка
13.05.2016
12:54:09
сск детектед

Admin
ERROR: S client not available

[Anonymous]
13.05.2016
13:24:21
Уж простите за глупые вопросы, но еще поспрашиваю https://tour.golang.org/flowcontrol/7 (Both calls to pow are executed and return before the call to fmt.Println in main begins.) т.е. функции выполняются заранее, еще перед тем как в main() идет их вызов?

В тех же плюсах, на сколько помню, функции выполняются только после их вызова, верно?

Daniel
13.05.2016
13:27:36
нет

там написано, что обе pow выполнятся до того, как Println будет вызвана

[Anonymous]
13.05.2016
14:01:30
Хотя

То есть, заходим в блок fmt.Println , выполняем все что внутри, и уже запускаем fmt.Println чтобы вывести эти значения

Daniel
13.05.2016
14:11:44
да

но это во всех языках так, кроме тех, где ленивые вычисления есть

Alexander
13.05.2016
15:08:27
А бывает рекурсия функции определенной внутри функции? https://play.golang.org/p/3FUBTNiMy7 Или это перебор?

Рабочий вариант https://play.golang.org/p/I4eooyyknX Но функция в корне модуля

Google
Alexander
13.05.2016
15:11:33
https://play.golang.org/p/IvnPVkrfga

[Anonymous]
13.05.2016
15:16:50
рекурсивные алгоритмы работают медленнее линейных аналогов

но это во всех языках так, кроме тех, где ленивые вычисления есть
в плюсах же как раз ленивые начиная с c++0x, а там как это работает? Или в хаскеле к примеру? Просто интересно очень, как то раньше и не задумывался

Alexander
13.05.2016
16:05:43
Бывает. В ФП языках не перебор.
Чот я с синтаксисом не разобрался.

分解物質
13.05.2016
16:06:02
рекурсивные алгоритмы работают медленнее линейных аналогов
в зависимости от левой пятки оптимизатора, но в основном да

Alexander
13.05.2016
16:06:38
В данном случае это туториал. Рекурсия - это красиво. Можно?

分解物質
13.05.2016
16:06:53
Что можно?

Alexander
13.05.2016
16:07:02
Использовать

分解物質
13.05.2016
16:07:08
ну да

分解物質
13.05.2016
16:09:25
Где делаешь?

Alexander
13.05.2016
16:09:37
https://play.golang.org/p/3FUBTNiMy7 

分解物質
13.05.2016
16:11:50
значит go так не умеет

Alexander
13.05.2016
16:13:03
分解物質
13.05.2016
16:21:03
да

Alexander
13.05.2016
16:21:38
Оказывается https://play.golang.org/p/8FF0d4pIM-

Ща проверю, но если не декларировать переменную, то ее невидно.

Вполне очевидно https://gist.github.com/oshliaer/45ec7ae142170c81bc4d4adc8438637a#file-scopes-of-var-md Необходимо создать переменную, до того, как ее использовать.

Страница 93 из 1674