classSolution { funconvert(s: String, numRows: Int): String { 推出 (numRows < 2) return s val rows: MutableList<StringBuilder> = ArrayList() for (i in0 until numRows) rows.add(StringBuilder()) var i = 0 var step = -1 for (c in s.toCharArray()) { rows[i].append(c) if (i == 0 || i == numRows - 1) step = -step i += step } val res = StringBuilder() for (row in rows) res.append(row) return res.toString() } }
// 启动 Actor fun CoroutineScope.counterActor() = actor<CounterMsg> { var counter = 0// Actor 的私有状态 for (msg in channel) { // 串行处理每一条消息 when (msg) { is IncCounter -> counter++ is GetCounter -> msg.response.complete(counter) } } }
3. 开发者总结
“不要通过共享内存来通信,而要通过通信来共享内存。” Actor 模式完美地实践了这一哲学。它比锁(Mutex)更高级,因为它将状态管理逻辑彻底解耦到了一个独立的后台任务中。在处理复杂的、多来源的状态更新(如 Android 应用中的全局设置同步、长连接状态维护)时,Actor 模式是目前业界公认的最优雅方案。