标签: shadowing

Lambda捕获和具有相同名称的参数 - 谁影响另一个?(clang vs gcc)

auto foo = "You're using g++!";
auto compiler_detector = [foo](auto foo) { std::puts(foo); };
compiler_detector("You're using clang++!");
Run Code Online (Sandbox Code Playgroud)
  • clang ++ 3.6.0和更新的打印出"你正在使用clang ++!" 并警告捕获 foo未被使用.

  • g ++ 4.9.0和更新版本打印出"你正在使用g ++!" 并警告该参数 foo未被使用.

什么编译器更准确地遵循C++标准?

wandbox示例

c++ lambda shadowing language-lawyer c++11

124
推荐指数
2
解决办法
4467
查看次数

从脚本导入已安装的包会引发"AttributeError:module has no attribute"或"ImportError:无法导入名称"

我有一个名为的脚本requests.py导入请求包.该脚本无法访问包中的属性,也无法导入它们.为什么这不起作用,我该如何解决?

以下代码提出了一个问题AttributeError.

import requests

res = requests.get('http://www.google.ca')
print(res)
Run Code Online (Sandbox Code Playgroud)
Traceback (most recent call last):
  File "/Users/me/dev/rough/requests.py", line 1, in <module>
    import requests
  File "/Users/me/dev/rough/requests.py", line 3, in <module>
    requests.get('http://www.google.ca')
AttributeError: module 'requests' has no attribute 'get'
Run Code Online (Sandbox Code Playgroud)

以下代码提出了一个问题ImportError.

from requests import get

res = get('http://www.google.ca')
print(res)
Run Code Online (Sandbox Code Playgroud)
Traceback (most recent call last):
  File "requests.py", line 1, in <module>
    from requests import get
  File "/Users/me/dev/rough/requests.py", line 1, in <module>
    from requests import get
ImportError: cannot import name 'get' …
Run Code Online (Sandbox Code Playgroud)

python exception python-module shadowing

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

为什么我的dplyr group_by&summary不能正常工作?(与plyr的名字冲突)

我有一个如下所示的数据框:

#df
ID  DRUG FED  AUC0t  Tmax   Cmax
1    1     0   100     5      20
2    1     1   200     6      25
3    0     1   NA      2      30 
4    0     0   150     6      65
Run Code Online (Sandbox Code Playgroud)

答案等等.我想总结药物DRUG和FED状态的AUC,Tmax和Cmax的一些统计数据FED.我用dplyr.例如:对于AUC:

CI90lo <- function(x) quantile(x, probs=0.05, na.rm=TRUE)
CI90hi <- function(x) quantile(x, probs=0.95, na.rm=TRUE)  

summary <- df %>%
             group_by(DRUG,FED) %>%
             summarize(mean=mean(AUC0t, na.rm=TRUE), 
                                 low = CI90lo(AUC0t), 
                                 high= CI90hi(AUC0t),
                                 min=min(AUC0t, na.rm=TRUE),
                                 max=max(AUC0t,na.rm=TRUE), 
                                 sd= sd(AUC0t, na.rm=TRUE))
Run Code Online (Sandbox Code Playgroud)

但是,输出不按DRUG和FED分组.它只给出一行包含DRUG和FED中未分面的统计数据.

知道为什么吗?我怎样才能让它做正确的事情?

r shadowing plyr name-collision dplyr

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

什么是影子?

在C#中,阴影一词是什么意思?我已阅读此链接,但并未完全理解.

c# polymorphism shadowing

34
推荐指数
5
解决办法
6万
查看次数

javascript中变量阴影的一个例子

我在Eloquent Javascript(第3章)中学习了变量阴影这个术语,但我试图理解这个概念的一个精确的基本例子.

这是阴影的一个例子吗?

var currencySymbol = "$";

function showMoney(amount) {
  var currencySymbol = "€";
  document.write(currencySymbol + amount);
}

showMoney("100");?
Run Code Online (Sandbox Code Playgroud)

javascript shadowing

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

什么是Java类中使用的变量阴影?

我正在阅读我的Deitel,Java How to Program一书,并且遇到了阴影这个词.如果允许阴影,Java类中的情况或用途是什么?

例:

public class Foo {

    int x = 5;

    public void useField() {
        System.out.println(this.x);
    }
    public void useLocal() {
        int x = 10;
        System.out.println(x);
    }
}
Run Code Online (Sandbox Code Playgroud)

java shadowing

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

Java中包可见性的继承

我正在寻找以下行为的解释:

  • 我有6个类,{aA,bB,cC,aD,bE,cF},每个类都有一个包可见的m()方法,该方法可以写出类名。
  • 我有一个带有主要方法的a.Main类,对这些类进行了一些测试。
  • 输出似乎未遵循正确的继承规则。

这些是类:

package a;

public class A {
    void m() { System.out.println("A"); }
}

// ------ 

package b;

import a.A;

public class B extends A {
    void m() { System.out.println("B"); }
}

// ------ 

package c;

import b.B;

public class C extends B {
    void m() { System.out.println("C"); }
}

// ------ 

package a;

import c.C;

public class D extends C {
    void m() { System.out.println("D"); }
}

// ------ 

package b;

import a.D;

public class E …
Run Code Online (Sandbox Code Playgroud)

java inheritance overriding shadowing package-private

21
推荐指数
2
解决办法
597
查看次数

当变量未初始化时,为什么这个程序会产生奇数输出?

int main() {
    int j = 0;
    int i = 0;
    for (j = 0; j < 5; j++) {
        printf("Iteration %d :  %d ", j + 1, i);
        int i;
        printf("%d", i);
        i = 5;
        printf("\n");
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码生成以下输出:

Iteration 1 :  0 0
Iteration 2 :  0 5
Iteration 3 :  0 5
Iteration 4 :  0 5
Iteration 5 :  0 5
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么printf迭代2,3,4,5中的第二个值是5.

我为什么第一个值在每个迭代是0的理解是,范围ifor环是局部的,但只要我们进入一个新的迭代的破坏i在被宣布for循环.

但我无法弄清楚为什么这个值在第二个时变为5 printf.

c scope loops shadowing

20
推荐指数
3
解决办法
2186
查看次数

Java 8双花括号初始化和名称冲突

以下类有一个名为的内部类Entry.此代码不会在Java 8中编译,因为编译器假定Entry双花括号初始值设定项中的引用是类型Map.Entry而不是Scope.Entry.这段代码在JDK的先前版本(至少6和7)中编译,但在JDK 8中被破坏.我的问题是"为什么?" Map.Entry未在此类中导入,因此编译器没有理由假设该值是类型Map.Entry.是否有一些隐含的范围被引入或匿名类的东西?

错误:

scope/Scope.java:23: error: incompatible types: scope.Scope.Entry cannot be converted to java.util.Map.Entry for (final Entry entry : entries) {
scope/Scope.java:22: error: cannot find symbol put(entry.getName(), entry);
Run Code Online (Sandbox Code Playgroud)

示例代码:

package scope;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;

public class Scope {

    public static class Entry<T> {
        public String getName() {
            return "Scope";
        }
    }

    public static void main(String[] args) {
        final Set<Entry> entries = new HashSet<>();

        new HashMap<String, …
Run Code Online (Sandbox Code Playgroud)

java inner-classes shadowing java-8

19
推荐指数
1
解决办法
1601
查看次数

在同一函数中定义变量及其静态等价物

我不明白以下代码是如何工作的:

#include "stdio.h"

int main(void) {
  int i = 3;
  while(i--) {
    static int i = 100;
    i--,
    printf("%d\n", i);
  }
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

使用Clang或GCC编译的代码打印以下输出:

99
98
97
Run Code Online (Sandbox Code Playgroud)

有人能解释一下这里发生了什么吗?看起来在一条指令中实现了两次操作并且不止一次.是不确定的行为?我在C++中观察到相同的行为.

c c++ static scope shadowing

17
推荐指数
2
解决办法
1554
查看次数