How to default-initialize a struct containing an array in Rust?

前端 未结 4 586
难免孤独
难免孤独 2021-01-11 10:31

What is the recommended way to declare a struct that contains an array, and then create a zero-initialized instance?

Here is the struct:

#[derive(De         


        
4条回答
  •  天涯浪人
    2021-01-11 11:32

    I'm afraid you can't do this, you will need to implement Default for your structure yourself:

    struct Histogram {
        sum: u32,
        bins: [u32; 256],
    }
    
    impl Default for Histogram {
        #[inline]
        fn default() -> Histogram {
            Histogram {
                sum: 0,
                bins: [0; 256],
            }
        }
    }
    

    Numeric types have nothing to do with this case, it's more like problems with fixed-size arrays. They still need generic numerical literals to support this kind of things natively.

提交回复
热议问题