首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >这个编程功能的名称是什么?

这个编程功能的名称是什么?
EN

Stack Overflow用户
提问于 2011-03-23 06:10:32
回答 5查看 251关注 0票数 1

在一些动态语言中,我见过这样的语法:

代码语言:javascript
复制
myValue = if (this.IsValidObject)
{
    UpdateGraph();
    UpdateCount();
    this.Name;
}
else
{
    Debug.Log (Exceptions.UninitializedObject);
    3;
}

基本上能够返回分支中的最后一条语句作为变量的返回值,不一定只是方法返回,但它们也可以实现。

这个功能的名称是什么?

这也可以在静态类型的语言中实现吗,比如C#?我知道C#有三元运算符,但我的意思是使用如上所示的if语句和switch语句。

EN

Stack Overflow用户

发布于 2011-03-23 06:18:25

它是一个三元条件。

在C中,你可以使用,例如:

代码语言:javascript
复制
printf("Debug? %s\n", debug?"yes":"no");

编辑:

复合语句列表可以在C中作为表达式求值。最后一条语句应该是一个表达式,并且整个复合语句都要用大括号括起来。

例如:

代码语言:javascript
复制
#include <stdio.h>

int main(void)
{
    int a=0, b=1;

    a=({
            printf("testing compound statement\n");
            if(b==a)
                printf("equals\n");
            b+1;
        });

    printf("a=%d\n", a);
    return 0;
}

因此,您正在执行的特征的名称是将复合语句赋值给(本地)变量。现在我认为这对你有更多的帮助。如需更多信息,请访问以下网址:http://www.chemie.fu-berlin.de/chemnet/use/info/gcc/gcc_8.html

保重,贝科。

PS。这个例子在你的问题的上下文中更有意义:

代码语言:javascript
复制
a=({
        int c;
        if(b==a)
            c=b+1;
        else
            c=a-1;
        c;
    });
票数 2
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5398484

复制
相关文章

相似问题

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