我需要從 ioArray 獲取 Array[Byte] 值,即 IO[Array[Byte]] // IO 來自貓庫
object MyTransactionInputApp extends App{
val ioArray : IO[Array[Byte]] = generateKryoBinary()
val i : Array[Byte] = ioArray.unsafeRunSync();
println(i)
def generateKryoBinaryIO(transaction: Transaction): IO[Array[Byte]] = {
KryoSerializer
.forAsync[IO](kryoRegistrar)
.use { implicit kryo =>
transaction.toBinary.liftTo[IO]
}
}
def generateKryoBinary(): IO[Array[Byte]] = {
val transaction = new Transaction(Hash(""),"","","","","")
val ioArray = generateKryoBinaryIO(transaction);
return ioArray
}
}
我嘗試了以下,但沒有作業
val i : Array[Byte] = for {
array <- ioArray
} yield array
uj5u.com熱心網友回復:
如果您剛開始使用貓效果,我建議您閱讀有關cats.effect.IOApp 哪些運行您的 IO 的資訊。
否則簡單的解決方案是:
- 顯式運行它并獲得結果:
import cats.effect.unsafe.implicits.global
ioArray.unsafeRunSync()
- 或者可能與
Future:
import cats.effect.unsafe.implicits.global
ioArray.unsafeToFuture()
你能給我們更多關于你的申請的背景資訊嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/465618.html
上一篇:ZIO中的getStrLn使用flatMap但不在內部用于理解
下一篇:表示區間映射的資料結構
