小编Bit*_*ler的帖子

如何将枚举用作数组元素?

我有点惊讶这个代码无法编译.作为Rust的新手,我当然可能做了一些愚蠢的错误......

mod board {
    enum Square {
        Empty,
        Black,
        White
    }

    fn init () -> [Square;9] {
        [Square::Empty; 9]
    }
}
Run Code Online (Sandbox Code Playgroud)

main.rs:10:9:10:27错误:core::marker::Copy类型board::Square[E0277] main.rs:10 [Square :: Empty; 9]

或者它是一种语言非特征,枚举不允许作为数组元素类型?

rust

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

不能移出类型`[Foo;2]`,一个非复制数组

我无法理解以下代码中的问题应该是什么:

extern crate rand;
use rand::*;

#[derive(Debug)]
enum Foo {
    A,
    B,
}

static FOOS: [Foo; 2] = [Foo::A, Foo::B];

fn random_foo() -> Foo {
    let i = rand::thread_rng().gen_range(0, FOOS.len());
    FOOS[i]
}

fn main() {
    println!(
        "First: {:?} Second: {:?} Random: {:?}",
        FOOS[0],
        FOOS[1],
        random_foo()
    );
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:

extern crate rand;
use rand::*;

#[derive(Debug)]
enum Foo {
    A,
    B,
}

static FOOS: [Foo; 2] = [Foo::A, Foo::B];

fn random_foo() -> Foo {
    let i = rand::thread_rng().gen_range(0, FOOS.len());
    FOOS[i]
}

fn …
Run Code Online (Sandbox Code Playgroud)

rust

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

代数数据类型(打算)名称冲突..如何?

我有想法在Haskell中实现自己的小音乐理论模块。

从便笺(Note)开始是有意义的,然后我就遇到了这个讨厌的句法问题,我不知道真正的Haskellers是如何处理它的。

data Note = Sharp NoteS | Flat NoteF deriving (Show)

data NoteS = 
    C | SC | D | SD | E | F | SF | G | SG | B
    deriving (Ord,Show,Eq)

data NoteF = 
    C | FD | D | FE | E | F | FG | G | FB | B
    deriving (Ord,Show,Eq)

instance Eq Note where
    (==) (NoteS n1) (NoteS n2) = n1 == n2
    (==) (NoteF n1) (NoteF n2) …
Run Code Online (Sandbox Code Playgroud)

haskell ghc

0
推荐指数
2
解决办法
82
查看次数

函数o1 .. o3尽管做了最大的努力但从未打过电话

module Main(main) where 

import Text.Printf

data RxEvent a =
    Value a
    | Error String
    | Done
    deriving (Show,Eq)

notify :: (Monad m, Foldable t, Num a1) => t (RxEvent a -> t1) -> RxEvent a -> m a1
notify subs ev =
    return $ Prelude.foldl (\ c s -> seq (s ev) (c+1) ) 0 subs

o name ev = do
    putStrLn name
    print ev
    return 0

o1 = o "o1:"
o2 = o "o2:"
o3 = o "o3:"

main …
Run Code Online (Sandbox Code Playgroud)

haskell

-2
推荐指数
1
解决办法
77
查看次数

chrono 将 DateTime<Utc> 转换为 NaiveDate

经过一段时间的摆弄后,我决定在这里问这个问题,因为 - 其他人不会像我一样浪费那么多的摆弄时间。

那么,如何将 a 转换DateTime<Utc>NaiveDateRustchrono箱子呢?

这是“填空”类型的测试代码:

#[test]
  fn test_utc_now_to_naive_date() {
    let utc_now = Utc::now();
    let now: NaiveDate = ???? // how?
  }
Run Code Online (Sandbox Code Playgroud)

我将这样一个事实归结为:在大多数语言中,时间和日期函数库都是过度设计的怪物,这归因于遭受 Y2K bug 的 PTSD 人们......

我们有这样的特征Datelike,难道这不会有助于将一个类似日期的东西转换成另一种吗?好吧 - 我找不到解决方案......

rust rust-chrono

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

标签 统计

rust ×3

haskell ×2

ghc ×1

rust-chrono ×1