我目前正在使用 next.js 构建一个 web 应用程序,它需要跨设备实时更新,例如,如果有人加入一个组,这需要立即显示给该组的所有现有成员。
目前,我最初是在页面加载时为用户获取数据,并在必要时使用 socket.io 更新内容。但是,我刚刚发现了 SWR 框架,它会在请求正文发生变化时自动更新内容。
我的问题是:我最好坚持我目前的方法,还是使用 SWR 钩子?目前,页面加载时正在获取大量数据,例如组、设置等,但如果我使用多个 SWR 挂钩分别获取组、设置等,效率会更高吗?
对于 Rust 中的所有原始整数类型,from_str_radix将给定基数的字符串转换为整数的方法将u32整数作为基数的参数。鉴于如果基数不在范围内[2, 36],函数会发生恐慌,为什么不from_str_radix使用 au8代替 a u32,因为 au8已经可以存储比最大允许基数更大的整数?
这种事情也发生在其他整数方法中,例如pow. a的最大值u8是255并且2^255已经大于 a u128(Rust 中最大的整数类型)可以存储的最大值,那么为什么pow函数采用 a u32,因为u32指数的大多数值都会导致溢出?
在 Rust 中,const函数在其中可以放入的代码非常有限,例如for不允许循环,也不允许任何非const函数调用。我知道const函数中的堆分配存在问题,但为什么例如下面的代码无效:
fn add(a: u8, b: u8) -> u8 {
a + b
}
const A: u8 = add(1, 2);
Run Code Online (Sandbox Code Playgroud)
如果add声明为const函数,这将是有效的,所以我不明白为什么 Rust 编译器无法检测到这是有效的;所以我想我也在问为什么const函数是必要的,为什么甚至for不允许在它们内部使用循环(即使循环是)。