小编clm*_*mno的帖子

如何使用房间自动迁移删除/重命名多列

注意:房间自动迁移处于测试阶段 - 2.4.0-beta02

我删除了两个不同表中的两列。我尝试重复@DeleteColumn注释,就像这样

    @DeleteColumn(tableName = "User", columnName = "phone")
    @DeleteColumn(tableName = "Product", columnName = "description")
    @DeleteTable(tableName = "Category")
    class TestRoomAutoMigration: AutoMigrationSpec {   }
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误

Repeatable annotations with non-SOURCE retention are not yet supported
Run Code Online (Sandbox Code Playgroud)

问题

  1. 如果我无法通过自动迁移重复注释,如何删除/重命名多列

android android-room

11
推荐指数
1
解决办法
2209
查看次数

如何在 NavGraph 组件之间共享视图模型(仅限)

我想在许多可组合项之间共享视图模型。就像我们如何在活动中的片段之间共享视图模型一样。

但是当我尝试这个时

setContent {
    val navController = rememberNavController()

    NavHost(navController = navController, startDestination = "home") {
        navigation(startDestination = "username", route = "login") {
            // FIXME: I get an error here
            val viewModel: LoginViewModel = viewModel()
            composable("username") { ... }
            composable("password") { ... }
            composable("registration") { ... }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误

@Composable 调用只能在 @Composable 函数的上下文中发生

需要

  • 视图模型应该仅在 NavGraph 范围中处于活动状态。
  • 当我转到不同的路线并返回时,我应该初始化一个新的视图模型(这就是我在导航图中调用它的原因)

几乎类似的解决方案

  1. Philip Dukhov对问题的回答:如何在 Compose NavGraph 内的两个或多个 Jetpack 可组合项之间共享视图模型?

    但在这种方法中,视图模型保留在启动它的活动的范围内,因此永远不会被垃圾收集。

android viewmodel android-jetpack-compose dagger-hilt

7
推荐指数
1
解决办法
5956
查看次数

用上面的数据填充空白单元格

我的数据看起来像:

| ID       | Name      | Inv | Date       | Value | PO  | Type  | Rate  | Tax   | Integ |
|----------|-----------|-----|------------|-------|-----|-------|-------|-------|-------|
| DEADBEEF | CHEMICALS | 321 | 19-11-2017 | 14288 | UK  | State | 0.00% | 3000  | 0     |
|          |           |     |            | 0     | 0   | 0     | 5.00% | 10750 | 537.5 |
Run Code Online (Sandbox Code Playgroud)

生成此数据的软件留下了重复数据的库。此处看到的空白单元格应该具有其上方单元格中看到的数据。

理想情况下,上述数据必须类似于:

| ID       | Name      | Inv | Date       | Value | PO  | Type  | Rate  | …
Run Code Online (Sandbox Code Playgroud)

python pandas

2
推荐指数
1
解决办法
1231
查看次数

memmove是否将动态内存用于其临时数组

根据C11 N1570标准草案

7.24.2.2“ memmove功能”:

memmove函数将n字符从指向的对象复制到指向s2的对象s1复制发生就好像n从对象人物指向s2首先拷贝到一个临时数组n字符不重叠的对象指向s1s2,然后n从临时数组字符复制到对象指向s1

因此,如果我选择使用(file_size = 32K)移动大小为32K的缓冲区

memmove(io_Buffer, io_Buffer+17, file_size);
Run Code Online (Sandbox Code Playgroud)

临时缓冲区的大小不是32K吗?

程序可以自行分配动态内存吗?它会在那一行中分配和释放内存吗?

c memory

2
推荐指数
1
解决办法
95
查看次数

如何重置 STM32 HAL UART 驱动程序 (HAL) 状态?

我知道可以使用启用 UART 接收中断

HAL_UART_Receive_IT(&huart2, (uint8_t *)rx_buffer, expectedNumberOfBytes)
Run Code Online (Sandbox Code Playgroud)
  • 但是一旦开始,如何“手动”停止它?

我们可以使用HAL_NVIC_DisableIRQ()(例如:)禁用 UART 中断HAL_NVIC_DisableIRQ(USART1_IRQn)。这将防止它抛出一个中断,但该函数的状态集HAL_UART_Receive_ITHAL_UART_STATE_BUSY_RX需要设置回HAL_UART_STATE_READY为UART手柄回到可以接受一个新的状态HAL_UART_Receive_IT()调用。

问题
如果我想在一段时间后禁用 Rx 中断,如何重置 UART 中断的状态?

堆栈溢出问题不涉及如何重置状态;我提到了这些问题:

  1. 在中断处理程序 STM32F407 中禁用中断
  2. https://electronics.stackexchange.com/questions/100073/stm32-usart-rx-interrupts

我可以使用USART_ClearITPendingBit()orUSART_ITConfig()但这些被 STM 的 HAL 库定义为私有函数。那么我应该使用它们吗?

c hardware interrupt stm32

2
推荐指数
1
解决办法
1万
查看次数

Git cherry-pick未能选择正确的变化

注意:这是我身边的错误.我挑选了父哈希.请参阅本update节.
原始问题:
vmu_hw_test在分支"test_imu"中有一个文件,其变化类似于下面所示

if( g_imu_spi.readFromFifo() == 0)
{
    //Find local maxima and minima event
    g_imu_spi.compute_event();
    //compute the euler
    g_imu_spi.compute_euler();
    //From the average values compute the max
    //g_imu_spi.compute_Max();
    g_imu_spi.compute_Max(buffer);
}
Run Code Online (Sandbox Code Playgroud)

if提交中引入了声明和删除评论.
master分支有

//Find local maxima and minima event
g_imu_spi.compute_event();
//compute the euler
g_imu_spi.compute_euler();
//From the average values compute the max
g_imu_spi.compute_Max(buffer);
Run Code Online (Sandbox Code Playgroud)

问题
1.正如我所读到的,cherry-pick只需进行一次提交更改并应用它.如果分支不同(在提交历史记录中)是否有问题
2.微软文档说不要挑选.樱桃挑选是不好的做法?
3.为什么樱桃选择失败?(更新:没有.)

Git Diff
对于最新的提交test_imu.c

diff --git a/Src/vmu_hw_test.c b/Src/vmu_hw_test.c
index 14b0a67..1954d64 100644 …
Run Code Online (Sandbox Code Playgroud)

git cherry-pick

1
推荐指数
1
解决办法
314
查看次数

传递一个字符串切片,返回一个字符串切片.但是谁拥有它?

我是Rust的初学者,只是学习所有权概念.

我正在使用此函数来反转String

fn reverse(input: &str) -> String {
    //we are receiving a borrowed value, 
    input
    //get an iterator of chars from the string slice
    .chars()
    //Goes between two iterators. 
    //From the doc:  double-ended iterator with the direction inverted.
    .rev()
    //collect into a String
    .collect::<String>()
}

fn process_reverse_case(input: &str, expected: &str) {
    assert_eq!(&reverse(input), expected)
}

fn main() {
    process_reverse_case("robot", "tobor");
}
Run Code Online (Sandbox Code Playgroud)

我想了解谁拥有robottobor.

  • 我传递了借来的价值.这是一个字符串切片.
  • 我明白这个不能修改.所以,当我们收集的反转字符串,我认为我们正在收集它变成argument 1assert_eq!.我对吗?
  • 但随着逆转+收集的过程发生在内部reverse,所需的内存不断增加.确实argument 1的 …

rust

1
推荐指数
1
解决办法
89
查看次数