javascript

java

python

c#

android

node.js

c++

reactjs

php

html

jquery

css

.net

ios

git

ruby-on-rails

sql

c

string

ruby

c#-var關鍵字有什么意義?

var關鍵字消除了對顯式類型聲明的需要,并且我很感興趣地閱讀了SO何時合適的討論。

我還讀過(但未使用過)Boo,它似乎通過將其聲明為局部變量而成為可選項。 使用Boo,可以隱含類型和聲明。

這使我想知道,為什么C#語言設計人員根本不愿意包含var關鍵字?

更新:是的,var支持匿名類型,但是匿名類型本身不需要var關鍵字...

var anon = new { Name = "Terry", Age = 34 };

anon = new { Name = "Terry", Age = 34 };
trans by 2020-02-29T16:24:07Z

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'];           
          
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);           
          
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

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