Сообщение Re[10]: Можно ли избавиться от async|await? от 14.12.2025 17:25
Изменено 14.12.2025 17:27 mrTwister
Re[10]: Можно ли избавиться от async|await?
Здравствуйте, novitk, Вы писали:
N>Если бы это было так то слово go было бы не нужно.
Слово go — это возможность вызвать асинхронную функцию без await'а. От этого вызываемая функция не начинает и не перестает быть асинхронной.
Пример из C#:
Эта функция асинхронна, она не блокирует тред. Вот ее полный аналог из go:
[go]
func MyDelay() {
time.Sleep(...)
}
[/go]
Это такая же асинхронная функция и она ничем не отличается от асинхронной функции из C#
Слово go — это по просто отсутствие await. Аналогами будут:
C#:
Go:
[go]
func MyDelay() {
go time.Sleep(...)
}
[/go]
N>Точно так же можно сказать, что в C# нет никаких async функций, все синхронны просто возвращают разное, и это будет правдой, но словоблудием. То что компилятор Go не жалуется, а должен бы, на "go prime(10000)" не означает, что функция написанная с return удобоварима асинхронно. Это обычная дыра, которых в GoLang гора, оставленная во имя "простоты".
Не понял, на что должен жаловаться компилятор, и почему функция неудобоварима асинхронно?
N>Если бы это было так то слово go было бы не нужно.
Слово go — это возможность вызвать асинхронную функцию без await'а. От этого вызываемая функция не начинает и не перестает быть асинхронной.
Пример из C#:
static async void MyDelay() {
await Task.Delay(....)
}Эта функция асинхронна, она не блокирует тред. Вот ее полный аналог из go:
[go]
func MyDelay() {
time.Sleep(...)
}
[/go]
Это такая же асинхронная функция и она ничем не отличается от асинхронной функции из C#
Слово go — это по просто отсутствие await. Аналогами будут:
C#:
static async void MyDelay() {
Task.Delay(....)
}Go:
[go]
func MyDelay() {
go time.Sleep(...)
}
[/go]
N>Точно так же можно сказать, что в C# нет никаких async функций, все синхронны просто возвращают разное, и это будет правдой, но словоблудием. То что компилятор Go не жалуется, а должен бы, на "go prime(10000)" не означает, что функция написанная с return удобоварима асинхронно. Это обычная дыра, которых в GoLang гора, оставленная во имя "простоты".
Не понял, на что должен жаловаться компилятор, и почему функция неудобоварима асинхронно?
Re[10]: Можно ли избавиться от async|await?
Здравствуйте, novitk, Вы писали:
N>Если бы это было так то слово go было бы не нужно.
Слово go — это возможность вызвать асинхронную функцию без await'а. От этого вызываемая функция не начинает и не перестает быть асинхронной.
Пример из C#:
Эта функция асинхронна, она не блокирует тред. Вот ее полный аналог из go:
Это такая же асинхронная функция и она ничем не отличается от асинхронной функции из C#
Слово go — это по просто отсутствие await. Аналогами будут:
C#:
Go:
N>Точно так же можно сказать, что в C# нет никаких async функций, все синхронны просто возвращают разное, и это будет правдой, но словоблудием. То что компилятор Go не жалуется, а должен бы, на "go prime(10000)" не означает, что функция написанная с return удобоварима асинхронно. Это обычная дыра, которых в GoLang гора, оставленная во имя "простоты".
Не понял, на что должен жаловаться компилятор, и почему функция неудобоварима асинхронно?
N>Если бы это было так то слово go было бы не нужно.
Слово go — это возможность вызвать асинхронную функцию без await'а. От этого вызываемая функция не начинает и не перестает быть асинхронной.
Пример из C#:
static async void MyDelay() {
await Task.Delay(....)
}Эта функция асинхронна, она не блокирует тред. Вот ее полный аналог из go:
func MyDelay() {
time.Sleep(...)
}Это такая же асинхронная функция и она ничем не отличается от асинхронной функции из C#
Слово go — это по просто отсутствие await. Аналогами будут:
C#:
static async void MyDelay() {
Task.Delay(....)
}Go:
func MyDelay() {
go time.Sleep(...)
}N>Точно так же можно сказать, что в C# нет никаких async функций, все синхронны просто возвращают разное, и это будет правдой, но словоблудием. То что компилятор Go не жалуется, а должен бы, на "go prime(10000)" не означает, что функция написанная с return удобоварима асинхронно. Это обычная дыра, которых в GoLang гора, оставленная во имя "простоты".
Не понял, на что должен жаловаться компилятор, и почему функция неудобоварима асинхронно?