标签: static-variables

如何在没有PHP名称的类中访问类中的静态变量?

有没有办法在不使用类前缀的情况下访问PHP类的静态变量?

例:

class A {

   protected static $x = "blahblah";

   public static function p() {

       print(A::$x); // <= Is there no way to omit A:: ???

   }

}
Run Code Online (Sandbox Code Playgroud)

我理解,那时$ x可能是一个未初始化的局部变量,但是能够说/声明/设置在这些情况下解释器应解析$ x作为前面声明的成员会很有意义.在任何地方键入类前缀是一个主要的失败恕我直言.

php static-variables

3
推荐指数
1
解决办法
233
查看次数

如何使用Rails进行线程安全单例,如何保持我的类变量安全?

我已经读过Is Rails无共享或者可以单独请求访问相同的运行时变量吗?他们解释我的问题:

类变量可能在我的rails srver的两个请求之间共享,但解决方案在哪里!?

如何在请求之间实现安全单例?

class Foo
  @@instances = []
end
Run Code Online (Sandbox Code Playgroud)

我怎样才能确定每个请求HTTP都会重置实例?!

编辑:

我发现"config.reload_classes_only_on_change = false"解决方案,但我不确定它是最好的性能.
这个选项有什么后果?

我有一个例子来测试安全类变量:

class Test
   def self.log
      @test ||= false
      puts @test
      @test = true
   end
end


class ApplicationController < ActionController::Base
   def index
      Test.log
      Test.log
   end
end
Run Code Online (Sandbox Code Playgroud)

如果我通过重新加载动作(F5)启动此代码,我希望每次在rails服务器的日志中读取"false".但是,默认情况下它只是第一次"假".

编辑2:实际上这个选项重装类,但没有解决线程中的concurency问题.类变量被重置,但它们可以被其他线程修改.

线程安全类变量如何?

singleton static-variables thread-safety class-variables ruby-on-rails-4

3
推荐指数
1
解决办法
1589
查看次数

链接错误:静态变量的多重定义

所以我先写了下面的代码,却遇到了编译错误。阅读此答案后: 静态数组类变量“多重定义”C++ 我修改了我的代码并将静态变量定义移动到一个 cpp 文件并且它执行得很好,但是我无法理解当我使用了预处理器防护时,为什么它显示多个定义错误?

#ifndef GRAPH_H

#define GRAPH_H
#include<iostream>
#include<vector>
using namespace std;

struct node{
  int element=0;
  static vector<bool> check;
  node(){
    if(check.size()<element+1)
      check.resize(element+1);
    }
};

vector<bool> node::check;

#endif
Run Code Online (Sandbox Code Playgroud)

static-variables linker-errors c++11

3
推荐指数
1
解决办法
2194
查看次数

pyspark udf 打印正在分析的行

我在 pyspark udf 函数中有问题,我想打印产生问题的行数。

我尝试使用 Python 中的“静态变量”等价物来计算行数,以便当用新行调用 udf 时,计数器会增加。但是,它不起作用:

import pyspark.sql.functions as F
def myF(input):
    myF.lineNumber += 1
    if (somethingBad):
        print(myF.lineNumber)
    return res

myF.lineNumber = 0

myF_udf =  F.udf(myF, StringType())
Run Code Online (Sandbox Code Playgroud)

如何计算调用 udf 的次数,以便在 pyspark 中找到产生问题的行数?

python static-variables user-defined-functions python-3.x pyspark

3
推荐指数
1
解决办法
3179
查看次数

我疯了吗?c#/ static修饰符

我有下面的代码,奇怪的是它继续返回相同的值(即使filename)是不同的,如果我在同一个请求中多次调用它.

我刚刚完成代码,甚至stringbytes完全相同(即GetBytes(string))返回相同的值.

    public static string Base64EncodeString(string filename)
    {
        var stringbytes = System.Text.Encoding.Default.GetBytes(filename);
        return Convert.ToBase64String(stringbytes);
    }
Run Code Online (Sandbox Code Playgroud)

c# static-variables

2
推荐指数
1
解决办法
162
查看次数

我们可以将全局静态变量视为全局变量

问题是我们可以将变量A称为"全局变量"吗?一方面A是静态全局变量,因此根据定义它是全局变量,来自另一个全局变量必须在程序的每个点都可用,而不仅仅是在当前的转换单元中.谢谢.

#include<stdio.h>

static int A;

void main()
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

c++ global-variables static-variables

2
推荐指数
1
解决办法
151
查看次数

声明全局变量和静态变量

我正在研究静态变量,我在维基百科上看到了这段代码.static int x在整个程序中存储它的值.即使我们在全球范围内声明它,它也会存储以前的值.这是否意味着静态和全局变量被视为相同.如果不是,两者如何工作?

#include <stdio.h>

 void func() {
       static int x=0;
        // x is initialized only once across three calls of func()
        printf("%d\n", x); // outputs the value of x
        x = x + 1;
}

 int main(int argc, char *argv[]) {
        func(); // prints 0
        func(); // prints 1
        func(); // prints 2
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

c static-variables

2
推荐指数
1
解决办法
7382
查看次数

为每个枚举实例分配不断增长的ID

我刚刚开始使用Java的第一步,学习了所有的基础知识但后来发现了我需要的枚举问题,所以请原谅我,如果我的问题的解决方案是非常明显的:

所以我有这个枚举,并希望为从0向上计数的每个实例添加一个唯一的id,但不必为每个构造函数调用添加另一个参数(因为这可能导致以后的错误).

public enum TerrainTile{

 WATER(1), GRASSLAND(1), HILL(2), FORREST(2), BLANK(99);

private final int id;
private final int moveCost;
private boolean hidden = true;

private TerrainTile(int moveCost) {
    this.moveCost = moveCost;
}
Run Code Online (Sandbox Code Playgroud)

我想加上一个

static int nextID = 0;
Run Code Online (Sandbox Code Playgroud)

并编译构造函数

private TerrainTile(int moveCost) {
    this.id = nextID++;
    this.moveCost = moveCost;
}
Run Code Online (Sandbox Code Playgroud)

但是我收到一条错误消息,指出它无法引用初始化程序中的静态字段.

有没有解决方法?

java enums static-variables

2
推荐指数
1
解决办法
75
查看次数

在Angularjs控制器中用作计数器的静态javascript变量

我想创建一个静态javascript变量,用作Angularjs控制器中的计数器.此静态变量将在重复调用的轮询函数中使用.

我想以一种看起来像这样的方式使用静态变量;

var polling_func = function()
{
    static var counter = 0;

    if (counter == 10)
    {
        alert('Do action');
        counter = 0;
    }
    counter = counter + 1;
    $timeout(polling_func, 1000);
}
polling_func();
Run Code Online (Sandbox Code Playgroud)

不幸的是,我无法在javascript中使用static关键字声明静态变量.我应该如何在我的代码中这样做?

javascript static-variables angularjs

2
推荐指数
1
解决办法
8917
查看次数

在rails控制器中使用静态变量是否是一种好习惯?

我有一个关于Rails最佳实践的问题。在我的rails项目中,我有以下代码:

class MyController < ApplicationController

  def some_method
    @product = MyFabricatorClass.new.create_product
  end

  ...
end
Run Code Online (Sandbox Code Playgroud)

MyFabricatorClass不依赖于某些状态,并且其行为是恒定的。我也在做很多C ++的工作,对我来说,总是实例化一个新的MyFabricatorClass对象似乎有点效率低下。在C ++项目中,我会适当地使用类似以下内容的东西:

class MyController < ApplicationController

  @@my_fabricator = nil

  def some_method
    @@my_fabricator ||= MyFabricatorClass.new
    @product = @@my_fabricator.create_product
  end

  ...
end
Run Code Online (Sandbox Code Playgroud)

这种样式在Rails中也合法吗?典型的Rails方式是什么?

感谢您的任何建议...!

ruby-on-rails static-variables

2
推荐指数
1
解决办法
1087
查看次数