为什么喜欢构图而不是继承呢?每种方法都有哪些权衡取舍?什么时候应该选择继承而不是作文?
为什么无法引用void?我在C++标准中找到的唯一内容就是这一行,见8.3.2.1
指定类型"对cv void的引用"的声明符是不正确的.
为什么会那样?为什么我不能写一个接受一个"通用"的函数void&?
为了清楚起见,我没有任何有用的应用程序,使用引用void可能比使用模板更好,但我只是好奇禁止这个结构的基本原理.
为了澄清一点,我理解使用"按原样"引用"无效"将与取消引用指向void的指针一样毫无意义.不过,我可以把它转换为参考TO- sometype.这时候为了使用它,我能不能?事实上,我不明白为什么下面的代码片段可以工作......
void foo(void *data)
{
int *i = reinterpret_cast<int*>(data);
// do something with i
}
Run Code Online (Sandbox Code Playgroud)
......虽然这个不能:
void foo(void &data)
{
int &i = reinterpret_cast<int&>(data);
// do something with i
}
Run Code Online (Sandbox Code Playgroud) NavController 无法以编程方式弹出堆栈中最新的 @Composable。即,如果它是根页面,则 popBackStack() 不起作用。因此,可以通过点击“关闭”按钮视图来关闭应用程序,并且只有硬件后退键允许离开应用程序。
示例:活动
class AppActivity : ComponentActivity() {
override fun onCreate(state: Bundle?) {
super.onCreate(state)
setContent {
val controller = rememberNavController()
NavHost(controller, startDestination = HOME) {
composable(HOME) { HomePage(controller) }
...
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
主页.kt
@Composable
fun HomePage(controller: NavController) {
Button(onClick = {
controller.popBackStack()
}) {
Text("Exit")
}
}
Run Code Online (Sandbox Code Playgroud)
问题:
如果使用 Compose Navigation,如何在 onClick 处理程序中关闭应用程序。