类型不匹配的[int]和vs [int,.. 0]

凯·塞格伦

我在Rust中遇到问题,但尚未找到答案:

mismatched types: expected `[int]`, found `[int, .. 0]`

我的代码如下:

struct Foo {
  bar: [int]
}

我正在尝试将其设置为空片:

Foo {
  bar: []
};

类型应该正确,但是大小可能不正确。

有任何想法吗?我怀疑这有点小。

弗拉基米尔·马特维夫(Vladimir Matveev)

在动态大小类型正确实现之前,您不能将裸[T]作为结构字段使用,即使它们将在实现时也可能不希望使用

看来您想将数组存储到结构中,对吗?在Rust中有两种方法可以完成此操作,具体取决于谁拥有数组内容。

当struct实例本身应该拥有数据时,最简单的方法是使用Vec<T>

struct Foo {
    bar: Vec<int>
}

您可以这样创建其实例:

Foo {
    bar: vec![1, 2, 3]
}

当struct实例仅应借用数据时,应使用切片&[T]

struct Foo<'a> {
    bar: &'a [int]   // or &'a mut [int] if you need to modify contents
}

然后像这样创建它:

let data: Vec<int> = ...;  // obtained from somewhere
// slices can only be taken from existing data, e.g. Vec<T>, or be &'static
Foo {
    bar: data.as_slice()   // or as_mut_slice() for &mut [int]
}

我真的建议您阅读出色的官方指南,该指南解释了自有向量和切片之间的区别以及更多其他内容。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

0,int()和int {}之间有什么区别?

来自分类Dev

String evaluation of PHP int(0)

来自分类Dev

如何解决将'std :: list <int> *'分配给'std :: list <int> [0]'时不兼容的类型?

来自分类Dev

(int *)0是空指针吗?

来自分类Dev

错误FS0001:类型'int'与类型'float'不匹配

来自分类Dev

default(int)与int = 0之间的差异

来自分类Dev

GLSL | “ float”和“ int”之间的算术运算中类型不匹配

来自分类Dev

无法将预期的类型“ Int”与实际类型“ m0 Int”匹配

来自分类Dev

找到scala.Int(0)必需Int 0

来自分类Dev

Xtext语法:输入'0'不匹配,预期为RULE_INT

来自分类Dev

0在PowerShell中不是[int]?

来自分类Dev

类型'int列表-> int'与类型'int'不匹配

来自分类Dev

尝试将可选的Int64分配给字典键时,类型“ Int64”和“ _”不匹配

来自分类Dev

无法将预期的类型'(a0,b0,c0,几何-> b)'与实际类型'几何->(Int,Int,Int,Int)

来自分类Dev

C ++模板:“参数的类型/值不匹配”和“预期为int的常量类型,为int”

来自分类Dev

int var []和int var [0]有什么区别

来自分类Dev

指定包含0的Int的长度

来自分类Dev

错误FS0001:类型'int'与类型'float'不匹配

来自分类Dev

'x = y = 0','x = 0;有什么区别?y = 0;”和“ int x = 0; int y = 0;' 关于执行?

来自分类Dev

Java indexOf(int)返回0

来自分类Dev

Xtext语法:输入'0'不匹配,预期为RULE_INT

来自分类Dev

Haskell无法将预期类型'[(Char,b0)]'与实际类型'(Char,Int)'相匹配

来自分类Dev

int> 0比!= 0快吗?

来自分类Dev

'operator + ='不匹配(操作数类型为'std :: basic_ostream <char>'和'int')

来自分类Dev

Scala类型不匹配单位,而不是Int

来自分类Dev

输入不匹配int

来自分类Dev

无法将预期类型“(Int, Int)”与实际类型“[t0]”匹配

来自分类Dev

'operator[]' 不匹配(操作数类型是 'std::unique_ptr<std::vector<int> >' 和 'int')

来自分类Dev

c++ 中的“int a, b =0”和“int a =0; int b = 0”有什么区别?

Related 相关文章

  1. 1

    0,int()和int {}之间有什么区别?

  2. 2

    String evaluation of PHP int(0)

  3. 3

    如何解决将'std :: list <int> *'分配给'std :: list <int> [0]'时不兼容的类型?

  4. 4

    (int *)0是空指针吗?

  5. 5

    错误FS0001:类型'int'与类型'float'不匹配

  6. 6

    default(int)与int = 0之间的差异

  7. 7

    GLSL | “ float”和“ int”之间的算术运算中类型不匹配

  8. 8

    无法将预期的类型“ Int”与实际类型“ m0 Int”匹配

  9. 9

    找到scala.Int(0)必需Int 0

  10. 10

    Xtext语法:输入'0'不匹配,预期为RULE_INT

  11. 11

    0在PowerShell中不是[int]?

  12. 12

    类型'int列表-> int'与类型'int'不匹配

  13. 13

    尝试将可选的Int64分配给字典键时,类型“ Int64”和“ _”不匹配

  14. 14

    无法将预期的类型'(a0,b0,c0,几何-> b)'与实际类型'几何->(Int,Int,Int,Int)

  15. 15

    C ++模板:“参数的类型/值不匹配”和“预期为int的常量类型,为int”

  16. 16

    int var []和int var [0]有什么区别

  17. 17

    指定包含0的Int的长度

  18. 18

    错误FS0001:类型'int'与类型'float'不匹配

  19. 19

    'x = y = 0','x = 0;有什么区别?y = 0;”和“ int x = 0; int y = 0;' 关于执行?

  20. 20

    Java indexOf(int)返回0

  21. 21

    Xtext语法:输入'0'不匹配,预期为RULE_INT

  22. 22

    Haskell无法将预期类型'[(Char,b0)]'与实际类型'(Char,Int)'相匹配

  23. 23

    int> 0比!= 0快吗?

  24. 24

    'operator + ='不匹配(操作数类型为'std :: basic_ostream <char>'和'int')

  25. 25

    Scala类型不匹配单位,而不是Int

  26. 26

    输入不匹配int

  27. 27

    无法将预期类型“(Int, Int)”与实际类型“[t0]”匹配

  28. 28

    'operator[]' 不匹配(操作数类型是 'std::unique_ptr<std::vector<int> >' 和 'int')

  29. 29

    c++ 中的“int a, b =0”和“int a =0; int b = 0”有什么区别?

热门标签

归档