Size: a a a

2021 January 22

Т

Тающий звук... in dlang.ru
Ну в данном случае да, все 3 лямды ссылаются на одну и ту же k
источник

Т

Тающий звук... in dlang.ru
Но это же правильно, т.к. в лямды ты передаёшь именно k, а не его значение
источник

Т

Тающий звук... in dlang.ru
При вызове этих лямд, он и выводит значение переменной k в данный момент времени
источник

Т

Тающий звук... in dlang.ru
Вот как сделать так, чтобы в лямду передать значение k в конкретный момент времени и потом, чтобы она использовала именно его, я этого не придумал и не знаю можно ли такое сделать.
источник

O

Oleg in dlang.ru
вот так в Д и просиходит.. пишешь хорошо, быстро, даже красиво, может быть.. запускаешь - фуй, не так работает.. разбираешься с какойто простой, вроде, бы вещью.. проходит 3 часа.. ты сидишь взлахмаченный, офуевший, и уже забыл, что твой пет-проект должен был делать ) а потом говорят "на Д пишется офуенно!"
источник

Т

Тающий звук... in dlang.ru
Oleg
вот так в Д и просиходит.. пишешь хорошо, быстро, даже красиво, может быть.. запускаешь - фуй, не так работает.. разбираешься с какойто простой, вроде, бы вещью.. проходит 3 часа.. ты сидишь взлахмаченный, офуевший, и уже забыл, что твой пет-проект должен был делать ) а потом говорят "на Д пишется офуенно!"
По-моему всё так работает, как и должно, ты просто ожидаешь чего-то другого
источник

O

Oleg in dlang.ru
всем встать! в группу вошел КО!
источник

Т

Тающий звук... in dlang.ru
Если переменная k для всех трёх лямд одна и та же, то как ещё может работать ?
источник

O

Oleg in dlang.ru
ты можешь в теле цикла добавить
 auto tmp = k;
 cbs ~= () => tmp.writeln;
и получишь 3 3 3
теперь чо? )
источник

DH

Dark Hole in dlang.ru
Oleg
вот так в Д и просиходит.. пишешь хорошо, быстро, даже красиво, может быть.. запускаешь - фуй, не так работает.. разбираешься с какойто простой, вроде, бы вещью.. проходит 3 часа.. ты сидишь взлахмаченный, офуевший, и уже забыл, что твой пет-проект должен был делать ) а потом говорят "на Д пишется офуенно!"
Справедливости ради отмечу, что Д тут можно заменить почти любым языком
источник

МВ

Макс Воробьев... in dlang.ru
Тающий звук
Если переменная k для всех трёх лямд одна и та же, то как ещё может работать ?
для элементарных типов я бы предположил захват по значению
источник

МВ

Макс Воробьев... in dlang.ru
Dark Hole
Справедливости ради отмечу, что Д тут можно заменить почти любым языком
++ дают выбор, как захватить переменную)
источник

O

Oleg in dlang.ru
нее, в любых других не колупаешь простую вещь 3 часа - СО сразу кажет, что не так и как надо.. в Д надо носом как котенка
источник

O

Oleg in dlang.ru
ваще, народу в Д мало, потому что косяк - копаешь 2 часа и "нунафуйпойдувпростит.. в джаву"
источник

Т

Тающий звук... in dlang.ru
Oleg
ты можешь в теле цикла добавить
 auto tmp = k;
 cbs ~= () => tmp.writeln;
и получишь 3 3 3
теперь чо? )
Да могу и добавлял. И считаю, что уже так должно было бы выдать то, что тебе нужно, но не выдало. А должно было выдать потому, что он при каждой итерации должен был создавать новую переменную tmp и каждая лямда уже должна была бы ссылаться на свою tmp со своим значением.
источник

O

Oleg in dlang.ru
ну.. если бы он захватывал переменную каждый раз, то было бы 1 2 3.. а оно всё равно выдает 3 3 3.. о чем и речь
источник

DH

Dark Hole in dlang.ru
Oleg
нее, в любых других не колупаешь простую вещь 3 часа - СО сразу кажет, что не так и как надо.. в Д надо носом как котенка
Расскажи это людям которые писали такой код (условно)
var json = request(function(res) { return res.json });

И удивлялись, что он не работает.
источник

МВ

Макс Воробьев... in dlang.ru
Dark Hole
Справедливости ради отмечу, что Д тут можно заменить почти любым языком
swift тоже значения захватывает https://godbolt.org/z/1h9Kz7
источник

DH

Dark Hole in dlang.ru
Макс Воробьев
++ дают выбор, как захватить переменную)
Так высказывание не про эту ситуацию, а про вообще
источник

Т

Тающий звук... in dlang.ru
Макс Воробьев
для элементарных типов я бы предположил захват по значению
Может и так надо было делать, только тогда не элементарные типы, а не ссылочные, так как структуры тоже будут относится к этому.
источник