标签: scope

具有依赖范围的嵌套模板

什么是依赖范围以及在以下错误的上下文中typename的含义是什么?

$ make
g++ -std=gnu++0x main.cpp
main.cpp:18:10: error: need 'typename' before 'ptrModel<std::vector<Data> >::Type' because 'ptrModel<std::vector<Data> >' is a dependent scope
make: *** [all] Error 1


/*
 * main.cpp
 */

#include <vector>
#include <memory>

template<typename T>
struct ptrModel
{
 typedef std::unique_ptr<T> Type;
};


template<typename Data>
struct ptrType
{
 typedef ptrModel< std::vector<Data> >::Type Type;
};

int main()
{
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ templates scope nested

79
推荐指数
1
解决办法
4万
查看次数

令人惊讶的是,全局变量在JavaScript中具有未定义的值

今天,当我看到全局变量undefined在某些情况下具有价值时,我完全感到惊讶.

例:

var value = 10;
function test() {
    //A
    console.log(value);
    var value = 20;

    //B
    console.log(value);
}
test();
Run Code Online (Sandbox Code Playgroud)

输出为

undefined
20
Run Code Online (Sandbox Code Playgroud)

这里,为什么JavaScript引擎将全球价值视为undefined.我知道JavaScript是一种解释型语言.如何在函数中考虑变量?

这是JavaScript引擎的陷阱吗?

javascript scope

79
推荐指数
3
解决办法
6万
查看次数

Python闭包:写入父作用域中的变量

我在函数中有以下代码:

stored_blocks = {}
def replace_blocks(m):
    block = m.group(0)
    block_hash = sha1(block)
    stored_blocks[block_hash] = block
    return '{{{%s}}}' % block_hash

num_converted = 0
def convert_variables(m):
    name = m.group(1)
    num_converted += 1
    return '<%%= %s %%>' % name

fixed = MATCH_DECLARE_NEW.sub('', template)
fixed = MATCH_PYTHON_BLOCK.sub(replace_blocks, fixed)
fixed = MATCH_FORMAT.sub(convert_variables, fixed)
Run Code Online (Sandbox Code Playgroud)

添加元素stored_blocks工作正常,但我不能增加num_converted第二个子功能:

UnboundLocalError:赋值前引用的局部变量'num_converted'

我可以使用,global但全局变量是丑陋的,我真的不需要该变量是全局的.

所以我很好奇如何写入父函数范围内的变量. nonlocal num_converted可能会完成这项工作,但我需要一个适用于Python 2.x的解决方案.

python closures scope python-2.x

77
推荐指数
5
解决办法
2万
查看次数

Java中的花括号是什么意思?

我有一些Java代码以两种方式使用花括号

// Curly braces attached to an 'if' statement:
if(node.getId() != null)
{
    node.getId().apply(this);
}

// Curly braces by themselves:
{
    List<PExp> copy = new ArrayList<PExp>(node.getArgs());
    for(PExp e : copy)
    {
        e.apply(this);
    }
}
outAMethodExp(node);
Run Code Online (Sandbox Code Playgroud)

在第一个if声明之后,那些独立的花括号是什么意思?

java syntax scope curly-braces

76
推荐指数
4
解决办法
4万
查看次数

C#中的私有内部类 - 为什么不经常使用它们?

我对C#比较陌生,每次我开始研究C#项目(我只用C#中几乎成熟的项目)我想知道为什么没有内部类?

也许我不明白他们的目标.对我来说,内部类 - 至少是私有内部类 - 看起来很像Pascal/Modula-2/Ada中的"内部程序":它们允许在较小的部分中分解主类以便于理解.

示例:这是大多数时间看到的内容:

public class ClassA
{
   public MethodA()
   {
      <some code>
      myObjectClassB.DoSomething(); // ClassB is only used by ClassA
      <some code>
   }
}

public class ClassB
{
   public DoSomething()
   {
   }
}
Run Code Online (Sandbox Code Playgroud)

由于ClassB只会被ClassA使用(至少有一段时间),我猜这个代码会更好地表达如下:

   public class ClassA
   {
      public MethodA()
      {
         <some code>
         myObjectClassB.DoSomething(); // Class B is only usable by ClassA
         <some code>
      }

      private class ClassB
      {
         public DoSomething()
         {
         }
      }
   }
Run Code Online (Sandbox Code Playgroud)

我很高兴收到你关于这个主题的消息 - 我是对的吗?

c# scope inner-classes

74
推荐指数
3
解决办法
6万
查看次数

从AngularJS中的过滤器访问范围变量

我通过date这种方式将值传递给我的自定义过滤器:

angular.module('myapp').
  filter('filterReceiptsForDate', function () {
    return function (input, date) {
      var out = _.filter(input, function (item) {
        return moment(item.value.created).format('YYYY-MM-DD') == date;
      });
      return out;
    }
  });
Run Code Online (Sandbox Code Playgroud)

我想在那里注入几个范围变量,就像我在指令中可以做的那样.是否可以这样做而不必将这些变量显式地作为函数参数传递?

javascript scope angularjs

74
推荐指数
2
解决办法
7万
查看次数

PHP在函数中访问全局变量

根据大多数编程语言范围规则,我可以访问在其中的函数外部定义的变量,但为什么这段代码不起作用?

<?php
$data = 'My data';

function menugen(){   
    echo "[".$data."]";
}

menugen();
?>
Run Code Online (Sandbox Code Playgroud)

[]输出.

php scope

73
推荐指数
5
解决办法
11万
查看次数

在jQuery事件中控制'this'的值

我使用jQuery创建了一个'control',并使用jQuery.extend来帮助尽可能地将其作为OO.

在我的控件初始化期间,我连接各种点击事件,如此

jQuery('#available input', 
            this.controlDiv).bind('click', this, this.availableCategoryClick);
Run Code Online (Sandbox Code Playgroud)

请注意,我将'this'作为bind方法中的data参数.我这样做是为了让我可以获取附加到控件实例的数据而不是触发click事件的元素.

这很好用,但我怀疑有更好的方法

在过去使用过Prototype之后,我记得一个绑定语法,它允许你控制事件中'this'的值.

什么是jQuery方式?

jquery scope this

72
推荐指数
5
解决办法
7万
查看次数

在PHP中的对象上使用json_encode(无论范围如何)

我正在尝试输出对象列表作为json,并想知道是否有一种方法可以使对象可用json_encode?我得到的代码看起来像

$related = $user->getRelatedUsers();
echo json_encode($related);
Run Code Online (Sandbox Code Playgroud)

现在,我只是遍历用户数组并单独将它们导出到数组中,json_encode以便为我变成可用的json.我已经尝试使对象可迭代,但json_encode似乎只是跳过它们.

编辑:这是var_dump();

php > var_dump($a);
object(RedBean_OODBBean)#14 (2) {
  ["properties":"RedBean_OODBBean":private]=>
  array(11) {
    ["id"]=>
    string(5) "17972"
    ["pk_UniversalID"]=>
    string(5) "18830"
    ["UniversalIdentity"]=>
    string(1) "1"
    ["UniversalUserName"]=>
    string(9) "showforce"
    ["UniversalPassword"]=>
    string(32) ""
    ["UniversalDomain"]=>
    string(1) "0"
    ["UniversalCrunchBase"]=>
    string(1) "0"
    ["isApproved"]=>
    string(1) "0"
    ["accountHash"]=>
    string(32) ""
    ["CurrentEvent"]=>
    string(4) "1204"
    ["userType"]=>
    string(7) "company"
  }
  ["__info":"RedBean_OODBBean":private]=>
  array(4) {
    ["type"]=>
    string(4) "user"
    ["sys"]=>
    array(1) {
      ["idfield"]=>
      string(2) "id"
    }
    ["tainted"]=>
    bool(false)
    ["model"]=>
    object(Model_User)#16 (1) {
      ["bean":protected]=>
      *RECURSION*
    } …
Run Code Online (Sandbox Code Playgroud)

php json scope redbean

72
推荐指数
4
解决办法
11万
查看次数

javascript中的全局var和window.variable有什么区别?

我正在阅读backbone.js文档,并看到很多代码将属性分配给window对象:

window.something = "whatever";
Run Code Online (Sandbox Code Playgroud)

调用此代码与分配变量和创建全局变量之间的区别是什么,如下所示:

something = "whatever";
Run Code Online (Sandbox Code Playgroud)

我假设有某种范围不同,和/或对象所有权差异(窗口是所有者与否)但我对两者之间的细节感兴趣,为什么我会使用窗口vs不使用它.

javascript attributes scope

72
推荐指数
3
解决办法
3万
查看次数