小编hig*_*y22的帖子

如何打印Vec?

我尝试了以下代码:

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>

println rust

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

在GHC手册中记录通配符示例

在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'".

haskell record

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

函数mask_被异步异常中断

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"不会打印"返回".为什么?

haskell asynchronous exception

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

标签 统计

haskell ×2

asynchronous ×1

exception ×1

println ×1

record ×1

rust ×1