A
描述: 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)
分析: 在 102. 二叉树的层序遍历 的基础上,翻转一下结果即可。
R
What the Flows: Build an Android app using Flows, Live Data, and MVVM architecture
Flow 是冷的异步数据流,可以顺序地发送数据或触发异常结束。
常用于需要定期循环事件的情况。
当与 Room 结合使用时,可以实现当数据库有变化时自动触发。
例如在一个从 Room 中获取数据,且具有从网络加载更多功能页面中,当点击加载更多按钮时,需要先获取新的数据,然后写入 Room ,再通过 LiveData 通知页面去刷新数据。
如果使用 Flow 来实现,就可以省去最后的手动刷新数据操作。
- Dao 中读取数据时,返回类型要是
Flow。
@Query("SELECT * FROM dog")
fun loadAllDogsFlow(): Flow<List<Dog>>
- 在 Repo 中读取数据。
val dogListFlow = dogDao.loadAllDogsFlow()
- 在 ViewModel 中用
Flow关联数据。
val dogListLiveData = mainActivityRepository.dogListFlow.asLiveData()
这样每当往 Room 里写入新数据时,就会触发 Flow ,省去了手动更新数据的过程。
T
pbcopy
在 Mac 上使用该命令可以把1个文件的内容复制到剪贴板。
pbcopy < ~/.ssh/id_rsa.pub
还可以和 grep 结合将结果复制到剪贴板。
grep "<keyword>" | pbcopy