相关疑难解决方法(0)

Python中的变量名不能以数字开头,还是可以?

这在某种程度上是学术性的,但不过.

Python语法禁止使用数字启动变量名称.但这可以像这样回避:

>>> globals()['1a'] = 1
>>> globals()['1a']
1
Run Code Online (Sandbox Code Playgroud)

同样地locals().

这是否意味着,Python实际上允许它,只是不是很明显?

编辑:

我的问题不是,是否允许.我知道,它在Python中是正式不允许的.问题是为什么我可以通过globals()直接解决来解决它,并且这会破坏其他规则或指导方针,甚至可能有一个很好的理由/应用程序来允许它.

python variable-names

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

是否有任何语言允许其变量名称中的空格

是否(或曾经有)任何非平凡的语言允许其变量名称中的空格?

我知道语言空白,但我对一种除了演示之外实际用于某种语言的语言感兴趣.

我出于纯粹的好奇心问这个问题.

whitespace esoteric-languages

8
推荐指数
1
解决办法
1444
查看次数

CSS选择器无法匹配数字属性值?为什么?

我已经设置了一个简单的测试页来说明我遇到的问题.简而言之,这可以按预期工作(文本格式为粗体,带下划线的红色):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <style>
            [abc=x1] {
                color: red;
                text-decoration: underline;
                font-weight: bold;
            }
        </style>
    </head>
    <body>
        <div abc=x1>hello</div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

这不会(文本保持黑色,不应用格式):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <style>
            [abc=1] {
                color: red;
                text-decoration: underline;
                font-weight: bold;
            }
        </style>
    </head>
    <body>
        <div abc=1>hello</div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我在两个例子之间唯一改变的是从x1到1的属性值(在CSS和HTML中).

所以看起来你无法匹配数字属性.

有谁知道为什么这......非常......有用......特征......存在吗?

html css css-selectors

7
推荐指数
1
解决办法
2955
查看次数

为什么变量名称中没有空格?

相关:为什么变量名称不能以数字开头?

是否存在技术上的原因,为什么变量名称中不允许使用空格或者是否符合惯例?

例如,是什么阻止我们做这样的事情?:

average score = sum of scores / number of scores
Run Code Online (Sandbox Code Playgroud)

想到的唯一问题是关键字,但可以简单地限制它们在变量名中的使用,而词法分析器将能够区分变量的一部分和关键字.

variables programming-languages language-design variable-names

7
推荐指数
1
解决办法
6552
查看次数

有没有理由说CSS从数字开始不支持id和类?

我注意到,如果id或类从number开始,则不应用css属性.例如,以下都不起作用:

.1ww{
    /* some properties here */
}
Run Code Online (Sandbox Code Playgroud)

.1{
    /* some properties here */
}
Run Code Online (Sandbox Code Playgroud)

#1{
    /* some properties here */
}
Run Code Online (Sandbox Code Playgroud)

#1ww{
    /* some properties here */
}
Run Code Online (Sandbox Code Playgroud)

为什么CSS不支持ID或类名,从数字开始?(例如,Javascript适用于数字ID和类)

css

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

为什么变量不能以数字开头?

我在PHP工作,我必须按顺序定义变量以保存在Mysql中.在我的情况下,字段名称和变量名称必须相同.

我可以声明这样的变量吗?

$1 OR $2 etc 
Run Code Online (Sandbox Code Playgroud)

如果不是为什么不,如果是,为什么是?

我试过了:

$id = 0;
$6  = $_REQUEST['6'];
$7  = $_REQUEST['7'];
$8  = $_REQUEST['8'];

$xary = array('6','7','8','9')

$oAppl->save_record("tablename", $id, "id");
Run Code Online (Sandbox Code Playgroud)

这给了我错误.

我也可以在Mysql中创建和使用具有相同名称的字段吗?

php variables numbers

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

为什么JVM允许我们命名以字节码中的数字开头的函数?

标识符由Java语言规范,Java SE 7 Edition(§3.8)很好地定义

An identifier is an unlimited-length sequence of Java letters and Java digits, the
first of which must be a Java letter.
Run Code Online (Sandbox Code Playgroud)

据我所知,由于方法名称是标识符,因此不可能在java中命名以数字开头的方法,并javac遵守此规则.

那么,为什么Java虚拟机似乎不遵守这个规则,允许我们在Bytecode中命名一个以数字开头的函数?


这个简单的代码片段实际上会打印f99()方法名称及其参数的值.

public class Test {
    public static void main(String[] args) {
        Test t = new Test();
        System.out.println(t.f99(100));
    }

    public int f99(int i){
        System.out.println(Thread.currentThread().getStackTrace()[1].getMethodName());
        return i;
    }
}
Run Code Online (Sandbox Code Playgroud)

编译和执行:

$ javac Test.java
$ java Test
Run Code Online (Sandbox Code Playgroud)

输出:

f99
100
Run Code Online (Sandbox Code Playgroud)

可以在编译后反汇编代码,并f99通过99(在reJ之类的工具的帮助下 )重命名所有出现的代码.

$ java …
Run Code Online (Sandbox Code Playgroud)

java jvm bytecode identifier

3
推荐指数
2
解决办法
610
查看次数

为什么ASP.NET MVC重命名以数字开头的控制器?

我尝试使用名称创建一个Controller类1BigController,但MVC不会让我这样做.它将控制器名称更改为_BigController.

为什么我不能用数字启动控制器名称?

asp.net-mvc

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

如何在java中的for循环中创建数组

我想在for循环内创建 10 个数组,使用数组名称 1、2、3、...、10。

我尝试了这样的操作,但它不起作用:

int n = 10;
for(int i = 0; i < n; i++)
{
    String [] i = new String[];
}
Run Code Online (Sandbox Code Playgroud)

java arrays

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

我想将软件许可证密钥加密/解密到mysql数据库中

我想将软件许可证密钥存储在我的mysql数据库的一个字段中,但我希望以乱码格式存储许可证号,这样如果数据库被泄露,许可证密钥将无法使用.

许可证密钥字段有3种可能的方案:

  1. 它可能为null - 某些用户还没有存储在数据库中的许可证密钥.
  2. 它可能是25位数的许可证,每5个字符由一个超级分隔:例如:ABCD1-EFGH2-IJKL3-MNOP4-QRST5
  3. 它可能是10位数的许可证,所有这些都是数字,并且没有分隔符:例如:1234567890

我想在存储之前加扰许可证,然后在登录后向用户显示时,再次运行相同的加扰功能以解密许可证.

我想我需要先检查许可证的格式.

  1. 如果为0,则什么也不做.我可以在加载函数之前检查它是否为null.
  2. 如果是29,则使用连字符分隔符来混洗许可证的各个部分,例如2nd和4th,并且可以使用str_rot13来更改字母字符.
  3. 如果是10,请选择说出第3,第5,第7和第9个字符并更改其顺序.比如第5名第9名和第3名第7名.

我设置了以下内容:

    function scramble($scramblestr) {

    // check string length
    $length = strlen($scramblestr);

    // if 10 digit license (all numbers)
    if ($length == 10) {
        $1st = substr($scramblestr, 0, 1);
        $2nd = substr($scramblestr, 1, 1);
        $3rd = substr($scramblestr, 2, 1);
        $4th = substr($scramblestr, 3, 1);
        $5th = substr($scramblestr, 4, 1);
        $6th = substr($scramblestr, 5, 1);
        $7th = substr($scramblestr, 6, 1);
        $8th = substr($scramblestr, 7, 1);
        $9th = substr($scramblestr, 8, 1); …
Run Code Online (Sandbox Code Playgroud)

php mysql syntax-error scramble

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

Typescript允许以number开头创建一个类字段名

为什么typescript允许使用数字中的类字段名称

 1: number = 1;
 2: number = 2;
Run Code Online (Sandbox Code Playgroud)

根据这个讨论为什么变量名称不能以数字开头?我们不能创建以数字开头的类字段名称(JavaScript如果我们定义变量名称以数字开头,也不允许).但是在typescript中我们可以创建一个以数字(无论如何)开头的类字段名称.为什么?这是一个错误typescript吗?

参考

在此输入图像描述

javascript language-features typescript angular

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

Javascript:var 3po = true;?

我读了一些其他地方,以下是非法的

var 3po = true;
Run Code Online (Sandbox Code Playgroud)

var highNoon = false;
Run Code Online (Sandbox Code Playgroud)

是合法的.

有人能解释这是什么意思吗?为什么第一个声明是非法的而第二个是合法的?

javascript

0
推荐指数
1
解决办法
90
查看次数