Re[5]: Можно ли избавиться от async|await?
От: mrTwister Россия  
Дата: 16.12.25 08:53
Оценка: -1
Здравствуйте, Shmj, Вы писали:

S>Здравствуйте, mrTwister, Вы писали:


T>>В go все функции асинхронны, у меня уже пальцы устали это писать


S>Вы ошиблись:


S>https://telegra.ph/Go-ne-vse-funkcii-asinhronnye-12-16


По умолчанию вызов функции в Go — синхронный: выполняется в текущей горутине и возвращает управление только после return


Дальше не читал. Горутина в go — это просто структура данных. Как, например, Task в .net. Не в смысле, что это аналог, в смысле что это вспомогательная структура данных для организации вычислений. Вызов функции в go блокирует горутину точно так же, как await блокирует асинхронную функцию в C#

Давай так, объясни, чем в плане поведения (а так же потребление ресурсов, потоков) отличаются C# вариант от go варианта?
async Task<int> SumAsync(int a, int b) {
    return a + b;
}

var x = await SumAsync(2, 3);


func sum(a, b int) int {
    return a + b
}
x := sum(1, 2)


подсказка: вообще ничем не отличаются, это полные аналоги
лэт ми спик фром май харт
Отредактировано 16.12.2025 8:56 mrTwister . Предыдущая версия . Еще …
Отредактировано 16.12.2025 8:54 mrTwister . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.