Сообщение Re[5]: Можно ли избавиться от async|await? от 16.12.2025 8:45
Изменено 16.12.2025 8:46 mrTwister
Re[5]: Можно ли избавиться от async|await?
Здравствуйте, Shmj, Вы писали:
S>[cut]
S>[q]
S>Если бы в Go все функции были асинхронными, в языке существовали бы:
S>
S> implicit future,
S> await-поведение,
S> выражение результата,
S> continuation semantics.
S>
S>Ничего этого в Go нет.
Все это есть в Go, но без явных языковых конструкций.
Когда ты в Go пишешь "sum(1, 2)" тут неявно подразумевается псевдокод "await sum(1,2)". У тебя вызывающая функция до sum может выполняться в одном потоке ОС, а после "x := sum(1, 2)" может продолжить выполняться вообще в другом потоке.
S>[cut]
S>[q]
S>Если бы в Go все функции были асинхронными, в языке существовали бы:
S>
S> implicit future,
S> await-поведение,
S> выражение результата,
S> continuation semantics.
S>
S>Ничего этого в Go нет.
Все это есть в Go, но без явных языковых конструкций.
Когда ты в Go пишешь "sum(1, 2)" тут неявно подразумевается псевдокод "await sum(1,2)". У тебя вызывающая функция до sum может выполняться в одном потоке ОС, а после "x := sum(1, 2)" может продолжить выполняться вообще в другом потоке.
Re[5]: Можно ли избавиться от async|await?
Здравствуйте, Shmj, Вы писали:
S>[cut]
S>[q]
S>Если бы в Go все функции были асинхронными, в языке существовали бы:
S>
S> implicit future,
S> await-поведение,
S> выражение результата,
S> continuation semantics.
S>
S>Ничего этого в Go нет.
Все это есть в Go, но без явных языковых конструкций.
Когда ты в Go пишешь "sum(1, 2)" тут неявно подразумевается псевдокод "await sum(1,2)". У тебя вызывающая функция до sum может выполняться в одном потоке ОС, а после "x := sum(1, 2)" может продолжить выполняться вообще в другом потоке (то есть так же, как в C# варианте).
S>[cut]
S>[q]
S>Если бы в Go все функции были асинхронными, в языке существовали бы:
S>
S> implicit future,
S> await-поведение,
S> выражение результата,
S> continuation semantics.
S>
S>Ничего этого в Go нет.
Все это есть в Go, но без явных языковых конструкций.
Когда ты в Go пишешь "sum(1, 2)" тут неявно подразумевается псевдокод "await sum(1,2)". У тебя вызывающая функция до sum может выполняться в одном потоке ОС, а после "x := sum(1, 2)" может продолжить выполняться вообще в другом потоке (то есть так же, как в C# варианте).