什么是依赖范围以及在以下错误的上下文中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) 今天,当我看到全局变量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引擎的陷阱吗?
我在函数中有以下代码:
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的解决方案.
我有一些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声明之后,那些独立的花括号是什么意思?
我对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)
我很高兴收到你关于这个主题的消息 - 我是对的吗?
我通过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)
我想在那里注入几个范围变量,就像我在指令中可以做的那样.是否可以这样做而不必将这些变量显式地作为函数参数传递?
根据大多数编程语言范围规则,我可以访问在其中的函数外部定义的变量,但为什么这段代码不起作用?
<?php
$data = 'My data';
function menugen(){
echo "[".$data."]";
}
menugen();
?>
Run Code Online (Sandbox Code Playgroud)
有[]输出.
我使用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方式?
我正在尝试输出对象列表作为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) 我正在阅读backbone.js文档,并看到很多代码将属性分配给window对象:
window.something = "whatever";
Run Code Online (Sandbox Code Playgroud)
调用此代码与分配变量和创建全局变量之间的区别是什么,如下所示:
something = "whatever";
Run Code Online (Sandbox Code Playgroud)
我假设有某种范围不同,和/或对象所有权差异(窗口是所有者与否)但我对两者之间的细节感兴趣,为什么我会使用窗口vs不使用它.
scope ×10
javascript ×3
php ×2
angularjs ×1
attributes ×1
c# ×1
c++ ×1
closures ×1
curly-braces ×1
java ×1
jquery ×1
json ×1
nested ×1
python ×1
python-2.x ×1
redbean ×1
syntax ×1
templates ×1
this ×1