对于旧的 XML 布局,我总是使用dimen.xml文件来定义几乎所有尺寸、填充、边距等。
在学习 Jetpack Compose 时,我发现所有存储库、示例等都将所有与维度相关的值直接硬编码到 compose 代码中,尽管我知道可以使用DimensionResource 方法从xml 文件中读取它。
对此,Compose 的推荐方式是什么?继续使用 dimen XML 文件,还是将其硬编码到实际的撰写代码中?
我什么时候会选择使用 Dispatchers.Unconfined?何时协程应该在哪里运行并不重要?那么你让协程选择更适合的线程池?
它与 Dispatchers.Default 有什么不同?运行时默认调度程序是否始终位于定义为默认线程池的特定线程池内?
我对下一个语法的含义用法感到困惑。
在“返回”之后放置后缀“async”和“lazy”究竟有什么作用?
return async
return lazy
Run Code Online (Sandbox Code Playgroud)
这里的“@”符号是什么意思?
return@async
return@lazy
return@withContext
Run Code Online (Sandbox Code Playgroud)
关于“@”符号,它在 Kotlin 中有特殊的命名吗?所以我可以更好地在文档中找到所有使用它的方法?
添加@ 和不使用它有什么区别?所以:
"return async" vs "return@async"
Run Code Online (Sandbox Code Playgroud) 使用 Camera2 API 在 Android 中设置手动控件时, CaptureRequest.SENSOR_FRAME_DURATION的用途是什么?
\n\n我已经阅读了几次文档,但仍然无法\xe2\x80\x99理解其目的,以及相对于曝光时间和ISO设置什么值。
\n\n我了解 CaptureRequest.SENSOR_EXPOSURE_TIME 指定传感器允许进入的光量;另外,CaptureRequest.SENSOR_SENSITIVITY 是传感器对光的灵敏度 (ISO),但不知道 SENSOR_FRAME_DURATION 及其与曝光时间和传感器灵敏度的关系。
\n\n例如,如果我设置 1 秒或 30 秒的长曝光时间,那么我应该在 SENSOR_FRAME_DURATION 中设置什么值?它与其他传感器控制有何关系?
\n我正在学习 C++ 中的简单 XOR 加密算法。
下一个代码工作正常:
void test(int8_t* data, const int data_length) {
const uint8_t key = 123;
for (int index = 0; index < data_length; index++)
data[index] = data[index] ^ key;
}
Run Code Online (Sandbox Code Playgroud)
我得到的数据是有符号的,因此类型为int8_t。
问题是编译器显示了下一个警告:
“使用带二进制位运算符的有符号整数操作数”
在执行 XOR 操作时,我可以通过使用uint8_t转换数据来发出警告,但我不知道其中的含义。我已经做了一些测试并且似乎没有问题,但是我很困惑,因为数据可以包含有符号值,所以我不确定通过转换它是否我弄乱了数据。
即使数据可以包含负值,转换为 uint8_t 是否正确?还是我应该忽略警告?