首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一行多个赋值

一行多个赋值
EN

Stack Overflow用户
提问于 2019-04-23 21:34:31
回答 1查看 145关注 0票数 1

我有一个任务要用NodeJs重写C#代码。不幸的是,在这一职能中有一些令人讨厌的人,我不完全理解。

代码语言:javascript
复制
int b, sign = ((b = byteBuffer.ReadByte()) >> 6) & 1, i = b & 0x3F, offset = 6;

问题

我可以看到有多个赋值,但我不确定这些变量应该有什么值。

有人能解释一下这一点和/或把它改写成一个更简单的理解C#片段吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-23 21:38:50

基本上,这和

代码语言:javascript
复制
int b = byteBuffer.ReadByte();
int sign = (b >> 6) & 1;
int i = b & 0x3F;
int offset = 6;

详细情况:

在原始行中,每个顶级,拆分声明:

代码语言:javascript
复制
int b, sign = ((b = byteBuffer.ReadByte()) >> 6) & 1, i = b & 0x3F, offset = 6;
     ^here                                          ^here         ^ here

然后你就有了一个棘手的问题:

代码语言:javascript
复制
int b;
int sign = ((b = byteBuffer.ReadByte()) >> 6) & 1;
// ...

实际上,它首先将B定义为没有初始值,然后下一个表达式立即将'ReadByte‘的结果分配给B作为第一个子操作,因此实际上它与从一开始就使用它初始化B是一样的,最后是我在第一个代码片段中所写的内容。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55819730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档