我尝试了以下代码:
fn main() {
let v2 = vec![1; 10];
println!("{}", v2);
}
Run Code Online (Sandbox Code Playgroud)
但编译器抱怨说:
error[E0277]: `std::vec::Vec<{integer}>` doesn't implement `std::fmt::Display`
--> src/main.rs:3:20
|
3 | println!("{}", v2);
| ^^ `std::vec::Vec<{integer}>` cannot be formatted with the default formatter
|
= help: the trait `std::fmt::Display` is not implemented for `std::vec::Vec<{integer}>`
= note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
= note: required by `std::fmt::Display::fmt`
Run Code Online (Sandbox Code Playgroud)
有没有人实现这个特性Vec<T>?
在GHC手册中,据说
module M where
data R = R { a,b,c :: Int }
module X where
import M( R(a,c) )
f b = R { .. }
Run Code Online (Sandbox Code Playgroud)
该R{..}扩展为R{M.a=a}
但我不知道在哪里定义.这段代码如何工作?
我试图编译模块X. GHC说:"不在范围内:数据构造函数'R'".
import Control.Exception
import System.Timeout
import Control.Concurrent
maskWorker :: IO ()
maskWorker = mask_ $ do
threadDelay 10000
putStrLn $ "Return"
uninterruptWorker :: IO ()
uninterruptWorker = uninterruptibleMask_ $ do
threadDelay 10000
putStrLn $ "Return"
test :: IO () -> IO ()
test worker = do
pid <- forkIO worker
threadDelay 5000
throwTo pid UserInterrupt
threadDelay 15000
putStrLn "The end"
Run Code Online (Sandbox Code Playgroud)
函数mask_应该忽略异步异常,直到它返回.但"test maskWorker"不会打印"返回".为什么?