有人可以解释一下如何float铸造uint32_t作品吗?这是有效的转换吗?
下面代码中第一行的输出对我来说有意义,但其余的我自己无法弄清楚。
\ncout<<uint8_t(256+33)<<'\\n';\ncout<<uint8_t(float(256+33))<<'\\n';\ncout<<int(uint8_t(float(256+33)))<<'\\n';\ncout<<int(uint8_t(float(256+3)))<<'\\n';\ncout<<int(uint8_t(float(256+20)))<<'\\n';\nRun Code Online (Sandbox Code Playgroud)\n输出
\n!\n\xef\xbf\xbd\n255\n255\n255\nRun Code Online (Sandbox Code Playgroud)\nuint8_t(256+33)是 int 到 unsigned char,它给出!,这正是我所期望的。然而,float根本uint8_t不起作用。当我尝试将输出转换为 int 时,它给了我常量 number 255。
我有一个vector<float>并想将其转换为vector<uint8_t>,它将传递到一个函数中。float转换为什么是有效的方法uint8_t?会static_cast<uint8_t>起作用吗?我应该先转换float为int然后再转换int为uint8_t吗?
dynamic飞镖和Object?飞镖有什么区别吗?
这个问题听起来可能与What is the Difference betweendynamic and Object in dart?重复。。然而,我认为并非如此。我不是在谈论语义差异或 dart 分析器抛出的任何警告,或从编码员的角度来看的任何内容。我想知道两者之间是否存在真正的区别。
我可以为两者分配任何数据值。
当我运行以下命令时:
Object? a;
dynamic b;
print(a.runtimeType);
print(b.runtimeType);
Run Code Online (Sandbox Code Playgroud)
我得到:
Null
Null
Run Code Online (Sandbox Code Playgroud)
我知道dynamic是一个关键字,而Object?是一个对象类。但确实dynamic推断Object?.
我是 Dart lang 的新手。所以,请赐教。