创建新列表时,您是指定初始大小还是将其留空?我知道通过指定初始大小,您可以避免让列表在每次添加x个项目时重新分配基础数组,但您也会在代码中添加详细程度.最小的性能增益是否值得为代码添加详细程度和复杂性.当该列表需要一个项目并且您忘记在初始化中添加一个项目时仍然会遇到重新分配的性能开销,现在这个数字可能对新开发人员没有意义.
非分散功能可以正常工作
fn test(f: &Fn() -> u8) {}
Run Code Online (Sandbox Code Playgroud)
但是我不能接受这样的分歧功能
fn test_diverging(f: &Fn() -> !) {}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
error[E0658]: The `!` type is experimental (see issue #35121)
--> examples/two_tasks.rs:44:31
|
44 | fn test_diverging(f: &Fn() -> !) {}
| ^
Run Code Online (Sandbox Code Playgroud)
查看问题#35121,我可以看到如何解决该问题,但与此同时可以解决此问题?