Kotlin与C#8'的等价物是什么;s异步可枚举?
C#8现在有了。有一个科特林相当于这个吗?例如,在C#中,您可以Kotlin与C#8'的等价物是什么;s异步可枚举?,kotlin,async-await,kotlin-coroutines,Kotlin,Async Await,Kotlin Coroutines,C#8现在有了。有一个科特林相当于这个吗?例如,在C#中,您可以立即等待foreach(…)(使用IAsyncEnumerable): async Task Main() { 等待foreach(var dt以新秒为单位().Take(10)) { 控制台写入线(dt); } } 公共类秒数:IAsyncEnumerable { 公共类FooEnumerator:IAsyncEnumerator { 公共日期时间当前{get;set;} 公共异步值任务DisposeAsync(){} 公共异步值
立即等待foreach(…)
(使用IAsyncEnumerable
):
async Task Main()
{
等待foreach(var dt以新秒为单位().Take(10))
{
控制台写入线(dt);
}
}
公共类秒数:IAsyncEnumerable
{
公共类FooEnumerator:IAsyncEnumerator
{
公共日期时间当前{get;set;}
公共异步值任务DisposeAsync(){}
公共异步值任务MoveNextAsync()
{
等待任务。延迟(1000);
当前=日期时间。现在;
返回true;
}
}
公共IAsyncEnumerator GetAsyncEnumerator(CancellationToken CancellationToken=默认值)
=>新的FooEnumerator();
}
看一下,这似乎是最接近的等价物
一个类似的例子是:
fun main() = runBlocking {
seconds().take(10).collect {
println(it)
}
}
fun seconds() = flow<Instant> {
while (true) {
delay(1000L)
emit(Instant.now())
}
}
fun main()=运行阻塞{
秒(){
println(it)
}
}
fun seconds()=流{
while(true){
延迟(1000L)
emit(Instant.now())
}
}
我正在使用版本