javascript

java

python

c#

android

node.js

c++

reactjs

php

html

jquery

css

.net

ios

git

ruby-on-rails

sql

c

string

ruby

c ++-if(cin >> x)-为什么要使用该条件?

整个夏天,我一直在使用“加速C ++”来学习C ++,但是有一个我似乎不太了解的概念。

为什么是

int x;
if (cin >> x){}

相当于

cin >> x;
if (cin){}

通过查看代码,在我看来我们正在使用cin作为变量。 但是,我认为这是一个功能。 当x的值等于我们在键盘上输入的值时,为什么要以这种方式使用cin?

trans by 2020-02-21T23:05:56Z

PHP-POST变量数组和filter_inpu

使用filter_input时,无法插入filter_input数组变量。 POST输入:

type              => 'container',
action            => 'edit',
data[display]     => 1,
data[query_limit] => 100

我可以作为数组从POST超全局变量正确访问filter_input变量,但是filter_input函数什么都不返回:

$data   = $_POST['data']; // Working, woot
$data   = filter_input(INPUT_POST, 'data'); // returns null, should return array
$action = filter_input(INPUT_POST, 'action'); // returns "edit" (correctly)

POST数组变量不能使用filter_input吗?

trans by 2020-02-21T05:28:52Z

列出所有PHP变量

是否可以在PHP脚本中转储所有全局变量? 说这是我的代码:

<?php
$foo = 1;
$bar = "2";
include("blah.php");
dumpall();
// displays $foo, $bar and all variables created by blah.php

另外,是否可以在PHP脚本中转储所有已定义的常量。

trans by 2020-02-18T01:12:40Z

html-使用PHP获取img src

在此示例中,我想将SRC属性转换为变量:

<img border="0" src="/images/image.jpg" alt="Image" width="100" height="100" />

因此,例如-我想获取一个变量$foo = "/images/image.jpg"。重要! src属性将是动态的,因此不能进行硬编码。有什么快速简便的方法可以做到这一点?

谢谢!

编辑:图像将是一个巨大的字符串的一部分,基本上是新闻故事的内容。 因此,图像只是其中的一部分。

EDIT2:该字符串中将包含更多图像,我只想获取第一个图像的src。 这可能吗?

trans by 2020-02-16T15:12:35Z

语法-将“ mut”放在变量名之前和“:”之后有什么区别?

这是我在Rust文档中看到的两个函数签名:

fn modify_foo(mut foo: Box<i32>) { *foo += 1; *foo }
fn modify_foo(foo: &mut i32) { *foo += 1; *foo }

为什么放置mut不同?

似乎第一个函数也可以声明为

fn modify_foo(foo: mut Box<i32>) { /* ... */ }
trans by 2020-02-16T10:13:16Z

如何在Python中解析对变量的引用

该消息有很多示例,但是有点长,但是我希望将帮助我和其他人更好地掌握变量的全部内容和Python 2.7中的属性查找。

我正在使用PEP 227的条款([http://www.python.org/dev/peps/pep-0227/)]用于代码块(例如模块,类定义,函数定义等)和变量绑定(例如赋值,参数声明,类和函数声明,for循环等)

我将术语变量用于可以不使用点和需要用对象限定的名称的属性名称(例如obj.x作为对象obj的属性x)。

Python中所有代码块都有三个作用域,但有以下功能:

  • 本地
  • 全球
  • 内建

Python中有四个仅用于功能的块(根据(PEP 227):

  • 本地
  • 封闭功能
  • 全球
  • 内建

将变量绑定到块中并在其中查找的规则是非常简单:

  • 变量与块中对象的任何绑定都会使该变量局部变量,除非变量声明为全局变量(在该变量中变量属于全局范围)
  • 使用规则LGB(本地,全局的,内置的)所有块,但功能
  • 使用规则LEGB(本地,封闭的,全局的,内置的)。

让我知道一些验证此规则的示例,并展示了许多特别案例。 对于每个示例,我都会给出自己的理解。 请如果我错了,请纠正我。 对于最后一个示例,我不了解结果。

范例1:

x = "x in module"
class A():
    print "A: "  + x                    #x in module
    x = "x in class A"
    print locals()
    class B():
        print "B: " + x                 #x in module
        x = "x in class B"
        print locals()
        def f(self):
            print "f: " + x             #x in module
            self.x = "self.x in f"
            print x, self.x
            print locals()

>>>A.B().f()
A: x in module
{'x': 'x in class A', '__module__': '__main__'}
B: x in module
{'x': 'x in class B', '__module__': '__main__'}
f: x in module
x in module self.x in f
{'self': <__main__.B instance at 0x00000000026FC9C8>}

类(规则LGB)没有嵌套作用域,如果不使用,则类无法访问该类的属性限定名称(在此示例中为self.x)。 这在以下内容中有很好的描述PEP227。

范例2:

z = "z in module"
def f():
    z = "z in f()"
    class C():
        z = "z in C"
        def g(self):
            print z
            print C.z
    C().g()
f()
>>> 
z in f()
z in C

这里使用LEGB规则查找函数中的变量,但是如果路径中有一个类,则跳过类参数。 又是在这里,这就是PEP 227正在解释的内容。

范例3:

var = 0
def func():
    print var
    var = 1
>>> func()

Traceback (most recent call last):
  File "<pyshell#102>", line 1, in <module>
func()
  File "C:/Users/aa/Desktop/test2.py", line 25, in func
print var
UnboundLocalError: local variable 'var' referenced before assignment

我们期望使用诸如python这样的动态语言来处理一切动态解决。 但这不是函数的情况。 本地变量在编译时确定。 PEP 227和[http://docs.python.org/2.7/reference/executionmodel.html]描述了这一点这样的行为

“如果名称绑定操作发生在代码块内的任何地方,块中名称的使用被视为对当前块。”

示例4:

x = "x in module"
class A():
    print "A: " + x
    x = "x in A"
    print "A: " + x
    print locals()
    del x
    print locals()
    print "A: " + x
>>> 
A: x in module
A: x in A
{'x': 'x in A', '__module__': '__main__'}
{'__module__': '__main__'}
A: x in module

但是我们在这里看到,PEP227中的此声明“如果名称绑定该操作在代码块内的任何位置进行,使用该名称的所有方式该块中的内容被视为对当前块的引用。” is当代码块为类时出错。 而且,对于班级,似乎本地名称绑定不是在编译时进行的,而是在使用类名称空间执行。 在这方面,PEP227和Python文档中的执行模型具有误导性,并且有些零件错了。

范例5:

x = 'x in module'
def  f2():
    x = 'x in f2'
    def myfunc():
        x = 'x in myfunc'
        class MyClass(object):
            x = x
            print x
        return MyClass
    myfunc()
f2()
>>> 
x in module

我对这段代码的理解如下。 指令x = x首先查找表达式右手x所指的对象至。 在这种情况下,将在类中本地查找对象,然后遵循LGB规则,它将在全局范围内查找字符串“ x in module”。 然后,MyClass的局部属性x为在类字典中创建并指向字符串对象。

范例6:

现在这是一个我无法解释的例子。它与示例5非常接近,我只是在更改本地MyClass从x到y的属性。

x = 'x in module'
def  f2():
    x = 'x in f2'
    def myfunc():
        x = 'x in myfunc'
        class MyClass(object):
            y = x
            print y
        return MyClass
    myfunc()
f2()
>>>
x in myfunc

在这种情况下,为什么要在MyClass中查找x引用最内在的功能?

trans by 2020-02-14T07:57:09Z

变量-Java为什么在其标识符中允许使用控制字符?

在精确地探究Java标识符中允许使用哪些字符时,我偶然发现了一件非常奇怪的事情,以至于几乎可以肯定这是一个错误。

我希望发现Java标识符符合以下要求:它们以具有Unicode属性Current_Symbol的字符开头,然后是具有ID_Continue的字符,但下划线和美元符号除外。 事实并非如此,我发现与我所听说的那种普通标识符或其他任何想法都存在极大差异。

简短演示

请考虑以下演示,证明Java标识符中允许使用ASCII ESC字符(八进制033):

$ perl -le 'print qq(public class escape { public static void main(String argv[]) { String var_\033 = "i am escape: \033"; System.out.println(var_\033); }})' > escape.java
$ javac escape.java
$ java escape | cat -v
i am escape: ^[

不过,甚至比那更糟。 实际上,几乎无限恶化。 甚至允许NULL! 还有成千上万个甚至不是标识符字符的代码点。 我已经在Solaris,Linux和运行Darwin的Mac上进行了测试,所有结果均相同。

长演示

这是一个测试程序,它将显示Java完全允许作为合法标识符名称的一部分的所有这些意外代码点。

#!/usr/bin/env perl
# 
# test-java-idchars - find which bogus code points Java allows in its identifiers
# 
#   usage: test-java-idchars [low high]
#   e.g.:  test-java-idchars 0 255
#
# Without arguments, tests Unicode code points
# from 0 .. 0x1000.  You may go further with a
# higher explicit argument.
#
# Produces a report at the end.
#
# You can ^C it prematurely to end the program then
# and get a report of its progress up to that point.
#
# Tom Christiansen
# tchrist@perl.com
# Sat Jan 29 10:41:09 MST 2011

use strict;
use warnings;

use encoding "Latin1";
use open IO => ":utf8";

use charnames ();

$| = 1;

my @legal;

my ($start, $stop) = (0, 0x1000);

if (@ARGV != 0) {
    if (@ARGV == 1) {
        for (($stop) = @ARGV) { 
            $_ = oct if /^0/;   # support 0OCTAL, 0xHEX, 0bBINARY
        }
    }
    elsif (@ARGV == 2) {
        for (($start, $stop) = @ARGV) { 
            $_ = oct if /^0/;
        }
    } 
    else {
        die "usage: $0 [ [start] stop ]\n";
    } 
} 

for my $cp ( $start .. $stop ) {
    my $char = chr($cp);

    next if $char =~ /[\s\w]/;

    my $type = "?";
    for ($char) {
        $type = "Letter"      if /\pL/;
        $type = "Mark"        if /\pM/;
        $type = "Number"      if /\pN/;
        $type = "Punctuation" if /\pP/;
        $type = "Symbol"      if /\pS/;
        $type = "Separator"   if /\pZ/;
        $type = "Control"     if /\pC/;
    } 
    my $name = $cp ? (charnames::viacode($cp) || "<missing>") : "NULL";
    next if $name eq "<missing>" && $cp > 0xFF;
    my $msg = sprintf("U+%04X %s", $cp, $name);
    print "testing \\p{$type} $msg...";
    open(TESTPROGRAM, ">:utf8", "testchar.java") || die $!;

print TESTPROGRAM <<"End_of_Java_Program";

public class testchar { 
    public static void main(String argv[]) { 
        String var_$char = "variable name ends in $msg";
        System.out.println(var_$char); 
    }
}

End_of_Java_Program

    close(TESTPROGRAM) || die $!;

    system q{
        ( javac -encoding UTF-8 testchar.java \
            && \
          java -Dfile.encoding=UTF-8 testchar | grep variable \
        ) >/dev/null 2>&1
    };

    push @legal, sprintf("U+%04X", $cp) if $? == 0;

    if ($? && $? < 128) {
        print "<interrupted>\n";
        exit;  # from a ^C
    } 

    printf "is %s in Java identifiers.\n",  
        ($? == 0) ? uc "legal" : "forbidden";

} 

END { 
    print "Legal but evil code points: @legal\n";
}

这是仅在前三个代码点(既不是空格也不是标识符字符)上运行该程序的示例:

$ perl test-java-idchars 0 0x20
testing \p{Control} U+0000 NULL...is LEGAL in Java identifiers.
testing \p{Control} U+0001 START OF HEADING...is LEGAL in Java identifiers.
testing \p{Control} U+0002 START OF TEXT...is LEGAL in Java identifiers.
testing \p{Control} U+0003 END OF TEXT...is LEGAL in Java identifiers.
testing \p{Control} U+0004 END OF TRANSMISSION...is LEGAL in Java identifiers.
testing \p{Control} U+0005 ENQUIRY...is LEGAL in Java identifiers.
testing \p{Control} U+0006 ACKNOWLEDGE...is LEGAL in Java identifiers.
testing \p{Control} U+0007 BELL...is LEGAL in Java identifiers.
testing \p{Control} U+0008 BACKSPACE...is LEGAL in Java identifiers.
testing \p{Control} U+000B LINE TABULATION...is forbidden in Java identifiers.
testing \p{Control} U+000E SHIFT OUT...is LEGAL in Java identifiers.
testing \p{Control} U+000F SHIFT IN...is LEGAL in Java identifiers.
testing \p{Control} U+0010 DATA LINK ESCAPE...is LEGAL in Java identifiers.
testing \p{Control} U+0011 DEVICE CONTROL ONE...is LEGAL in Java identifiers.
testing \p{Control} U+0012 DEVICE CONTROL TWO...is LEGAL in Java identifiers.
testing \p{Control} U+0013 DEVICE CONTROL THREE...is LEGAL in Java identifiers.
testing \p{Control} U+0014 DEVICE CONTROL FOUR...is LEGAL in Java identifiers.
testing \p{Control} U+0015 NEGATIVE ACKNOWLEDGE...is LEGAL in Java identifiers.
testing \p{Control} U+0016 SYNCHRONOUS IDLE...is LEGAL in Java identifiers.
testing \p{Control} U+0017 END OF TRANSMISSION BLOCK...is LEGAL in Java identifiers.
testing \p{Control} U+0018 CANCEL...is LEGAL in Java identifiers.
testing \p{Control} U+0019 END OF MEDIUM...is LEGAL in Java identifiers.
testing \p{Control} U+001A SUBSTITUTE...is LEGAL in Java identifiers.
testing \p{Control} U+001B ESCAPE...is LEGAL in Java identifiers.
testing \p{Control} U+001C INFORMATION SEPARATOR FOUR...is forbidden in Java identifiers.
testing \p{Control} U+001D INFORMATION SEPARATOR THREE...is forbidden in Java identifiers.
testing \p{Control} U+001E INFORMATION SEPARATOR TWO...is forbidden in Java identifiers.
testing \p{Control} U+001F INFORMATION SEPARATOR ONE...is forbidden in Java identifiers.
Legal but evil code points: U+0000 U+0001 U+0002 U+0003 U+0004 U+0005 U+0006 U+0007 U+0008 U+000E U+000F U+0010 U+0011 U+0012 U+0013 U+0014 U+0015 U+0016 U+0017 U+0018 U+0019 U+001A U+001B

这是另一个演示:

$ perl test-java-idchars 0x600 0x700 | grep -i legal
testing \p{Control} U+0600 ARABIC NUMBER SIGN...is LEGAL in Java identifiers.
testing \p{Control} U+0601 ARABIC SIGN SANAH...is LEGAL in Java identifiers.
testing \p{Control} U+0602 ARABIC FOOTNOTE MARKER...is LEGAL in Java identifiers.
testing \p{Control} U+0603 ARABIC SIGN SAFHA...is LEGAL in Java identifiers.
testing \p{Control} U+06DD ARABIC END OF AYAH...is LEGAL in Java identifiers.
Legal but evil code points: U+0600 U+0601 U+0602 U+0603 U+06DD

问题

谁能解释这个看似疯狂的行为? 从U + 0000开始,到处都有很多很多其他莫名其妙允许的代码点,这也许是最奇怪的。 如果在第一个0x1000代码点上运行它,您会看到确实出现了某些模式,例如允许使用属性Current_Symbol允许任何代码点和所有代码点。但是,至少对于我来说,还有太多其他情况是完全无法解释的。

trans by 2020-02-14T07:32:21Z

math-默认的php函数,将负数变成0

有这样的事吗?

例如

$var = -5;
echo thefunction($var); // should be 0


$var = 5;
echo thefunction($var); // should be 5
trans by 2020-02-13T05:29:30Z

变量-G函数外的非声明语句

我正在为提供JSON或XML格式数据的API构建Go库。

此API需要我每15分钟左右请求test,并在调用中使用它。 例如:

foo.com/api/[my-application-id]/getuserprofilejson/[username]/[session-id]
foo.com/api/[my-application-id]/getuserprofilexml/[username]/[session-id]

在我的Go库中,我试图在test函数的外部创建一个变量,并打算对其进行ping操作以获取每个API调用的值。 如果该值为nil或为空,则请求一个新的会话ID,依此类推。

package apitest

import (
    "fmt"
)

test := "This is a test."

func main() {
    fmt.Println(test)
    test = "Another value"
    fmt.Println(test)

}

声明全局可访问变量(但不一定是常量)的惯用Go方法是什么?

我的test变量需要:

  • 可从其自己的程序包中的任何位置进行访问。
  • 多变
trans by 2020-02-12T19:03:41Z

变量-检查python di中是否存在嵌套键的优雅方法

有没有一种更易读的方式来检查是否存在埋在dict中的键而无需独立检查每个级别?

可以说我需要在埋藏的对象中获取此值(示例取自Wikidata):

x = s['mainsnak']['datavalue']['value']['numeric-id']

为了确保不会以运行时错误结束,有必要检查每个级别,如下所示:

if 'mainsnak' in s and 'datavalue' in s['mainsnak'] and 'value' in s['mainsnak']['datavalue'] and 'nurmeric-id' in s['mainsnak']['datavalue']['value']:
    x = s['mainsnak']['datavalue']['value']['numeric-id']

我可以想到的另一种解决方法是将其包装到True构造中,我觉得对于这样一个简单的任务也很尴尬。

我正在寻找类似的东西:

x = exists(s['mainsnak']['datavalue']['value']['numeric-id'])

如果所有级别都存在,则返回True

trans by 2020-02-12T15:20:18Z

IF语句中的javascript变量范围

在“ if”语句中声明和分配的变量是否仅在该“ if”块中或整个函数中可见?

我在下面的代码中这样做正确吗? (似乎可以工作,但是多次声明“变量结构”似乎很尴尬)有没有更干净的解决方案?

    function actionPane(state) {
    if(state === "ed") {
        var structure = {
            "element" : "div",
            "attr" : {
                "class" : "actionPane"
            },
            "contains" : [{
                "element" : "a",
                "attr" : {
                    "title" : "edit",
                    "href" : "#",
                    "class" : "edit"
                },
                "contains" : ""
            }, {
                "element" : "a",
                "attr" : {
                    "title" : "delete",
                    "href" : "#",
                    "class" : "delete"
                },
                "contains" : ""
            }]
        }
    } else {
        var structure = {
            "element" : "div",
            "attr" : {
                "class" : "actionPane"
            },
            "contains" : [{
                "element" : "a",
                "attr" : {
                    "title" : "save",
                    "href" : "#",
                    "class" : "save"
                },
                "contains" : ""
            }, {
                "element" : "a",
                "attr" : {
                    "title" : "cancel",
                    "href" : "#",
                    "class" : "cancel"
                },
                "contains" : ""
            }]
        }
    }
    return structure;
}
trans by 2020-02-10T04:55:04Z

java-Eclipse中的环境变量

我能够从命令提示符运行示例hadoop程序,并尝试从Eclipse运行相同的程序,以便我可以对其进行调试并更好地理解它。

对于命令行程序,在-DHADOOP_MAPRED_HOME=test中设置了一些环境变量,并且在hadoop程序中将其读取为System.getenv()。 但是,当我从Eclipse运行带有DISPLAY的Java程序时,我得到的是null。

我尝试从Eclipse的运行时配置中将-DHADOOP_MAPRED_HOME=test传递给VM参数,但在独立程序中仍然为null。 如何使环境变量在Eclipse中可见? 当我在Eclipse中迭代System.getenv()时,我看到许多变量,例如DISPLAYUSERHOME等。 他们在哪里设置? 我正在使用Ubuntu 11.04。

trans by 2020-02-09T01:15:41Z

测试是否在R中设置了函数的自变量

我有一个函数p2,它带有两个参数(isset()p2):

如果对于参数p2没有值传递给该函数,则应改用isset()569 ^ 2的值。 但是,如果没有给定值,如何在函数中查找。 问题是如果没有值,则变量p2不会初始化。 因此,我无法测试p2NULL

f <- function(p1, p2) {
    if(is.null(p2)) {
        p2=p1^2
    }
    p1-p2
}

是否可以某种方式检查是否将p2的值传递给该函数? (我找不到isset()-函数或类似的东西。)

trans by 2020-02-07T08:41:11Z

shell-找不到Bash变量分配和命令

这个问题已经在这里有了答案:

  • Bash变量分配中找不到命令错误                                     5个答案

我有一个Shell脚本,可以让我访问脚本中的全局变量,但是当我尝试创建自己的脚本时,它会响应:未找到命令。

#!/bin/bash
J = 4
FACE_NAME = "eig$J.face"
USER_DB_NAME = "base$J.user"

当我运行上面的脚本时,我得到:

./test1.sh line 2: J: command not found
./test1.sh line 3: FACE_NAME: command not found
./test1.sh line 4: USER_DB_NAME: command not found

有任何想法吗?? 我在Windows XP下使用Cygwin。

trans by 2020-02-07T06:36:36Z

是否可以在vba中声明公共变量并分配默认值?

我想这样做,但是不会编译:

Public MyVariable as Integer = 123

实现此目标的最佳方法是什么?

trans by 2020-02-06T23:33:24Z

python-如何调用在Django模板中接受参数的函数?

我正在向Django的模板传递一个函数,该函数返回一些记录。我想调用此函数并遍历其结果。

{% for item in my_func(10) %} 

那不行我试图将函数的返回值设置为变量并遍历该变量,但是似乎无法在Django模板中设置变量。

有什么正常的方法吗?

trans by 2020-02-05T00:22:15Z

在两次运行Python脚本之间将持久变量保存在内存中

有什么方法可以将结果变量保存在内存中,所以我不必每次运行脚本的开头都重新计算它?每次运行脚本时,我都会对数据集(从磁盘上读取)进行一系列(5-10秒)的确切操作。这不是什么大问题,因为我非常擅长使用交互式编辑器在两次运行之间调试代码。 但是有时候交互功能只是不切实际。

我知道我可以将结果写到磁盘上的文件中,但是如果可能的话,我想避免这样做。 这应该是一个解决方案,它在我第一次运行脚本时会生成一个变量,并将其保留在内存中,直到关闭外壳本身或明确告诉它退出为止。 像这样:

# Check if variable already created this session
in_mem = var_in_memory() # Returns pointer to var, or False if not in memory yet
if not in_mem:
    # Read data set from disk
    with open('mydata', 'r') as in_handle:
        mytext = in_handle.read()
    # Extract relevant results from data set
    mydata = parse_data(mytext)
    result = initial_operations(mydata)
    in_mem = store_persistent(result)

我有点想说shelve模块可能就是我在这里想要的,但是看起来为了打开一个shelve变量,我必须为持久对象指定一个文件名,所以我不确定 这正是我要的东西。

关于搁置做我想做的任何提示? 还有其他想法吗?

trans by 2020-02-04T05:24:41Z

.NET Integer与Int16?

我有一个可疑的编码实践。

当我需要遍历计数限制在Int16以下的一小部分项目时,我将Integer用作我的i变量类型,而不是Int16。我这样做是因为我认为使用Integer比完整的Integer更有效。

我错了吗? 使用Int16Integer之间没有有效的性能差异吗? 我应该停止使用Int16而是只使用Integer满足我的所有计数/迭代需求吗?

trans by 2020-01-30T08:25:47Z

wpf-如何在XAML中定义变量?

我在XAML中具有以下两个按钮:

<Button Content="Previous"
        Margin="10,0,0,10"/>
<Button Content="Next"
        Margin="0,0,10,10"/>

如何将“ 10”定义为变量,以便可以在一个位置进行更改,如下所示:

伪代码:

<variable x:key="theMargin"/>
<Button Content="Previous"
        Margin="{Variable theMargin},0,0,{Variable theMargin}"/>
<Button Content="Next"
        Margin="0,0,{Variable theMargin},{Variable theMargin}"/>
trans by 2020-01-26T23:52:54Z

计算批处理脚本中两个变量的总和

这是我第一次使用Stack Overflow,因此请宽恕这个问题。 我一直在尝试对批处理进行编程,并使用DOSbox在我的linux机器上运行它们。

这是我一直在使用的代码:

@echo off
set a=3
set b=4
set c=%a%+%b%
echo %c%
set d=%c%+1
echo %d%

输出是:

3+4
3+4+1

我将如何添加两个变量而不是回显该字符串?

trans by 2020-01-24T02:47:23Z

1 2 3 4 5 6 7 8 9 10 11 下一页 共11页