【问题标题】:Does vala have function static variables?vala 有函数静态变量吗?
【发布时间】:2014-09-16 02:59:23
【问题描述】:

Vala 有函数静态变量吗?

“函数静态变量”是指在函数内部声明的变量,该变量在调用之间保持其值,如下面的 c 示例中所示:

#include <stdio.h>

void foo()
{
    int a = 10;
    static int sa = 10;

    a += 5;
    sa += 5;

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

【问题讨论】:

    标签: vala


    【解决方案1】:

    不,它没有。

    在您的示例中,您可以使用全局变量或将函数包装在一个类中,并使该变量成为该类的属性。

    关键字static具有完全不同的含义,仅用于未绑定到实例的类成员。

    【讨论】:

    • 我不确定,但是是否可以使用 unowned 实现操作静态行为?我就是不能使用全局,否则维护者会砍掉我的头,我希望它也可以保持简单。
    • unowned 在这种情况下没有帮助。
    • 您可以使用闭包来捕获局部变量的状态,但不确定编译器将如何处理这种情况下的状态。
    猜你喜欢
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 2016-04-27
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    • 2018-09-15
    相关资源
    最近更新 更多