我正在尝试执行此查询:
declare @tablename varchar(50)
set @tablename = 'test'
select * from @tablename
Run Code Online (Sandbox Code Playgroud)
这会产生以下错误:
Msg 1087,Level 16,State 1,Line 5
必须声明表变量"@tablename".
什么是动态填充表名的正确方法?
我在回答问题时曾与一位新的C++开发人员合作:"为什么变量名称不能以数字开头?"
我无法想出答案,除了一些数字可以包含文本(123456L,123456U),如果编译器认为所有带有一些字母字符的数字都是变量名称,那就不可能.
这是正确的答案吗?还有其他原因吗?
string 2BeOrNot2Be = "that is the question"; // Why won't this compile?
Run Code Online (Sandbox Code Playgroud) c++ variables programming-languages language-design variable-names
例如,拿这段代码:
var person = new Person();
Run Code Online (Sandbox Code Playgroud)
或者你的Pythonistas:
person = Person()
Run Code Online (Sandbox Code Playgroud)
我不断被告知这有多糟糕,但还没有看到这两行代码不道德的例子.对我来说,人是一个人,并试图给它另一个名字是浪费时间.我想在语法突出显示之前的几天,这将是一个大问题.但是现在,除了变量名之外,告诉类型名称很容易.哎呀,在SO上看到差异很容易.
还是有什么我想念的?如果是这样,如果您能提供导致问题的代码示例,将会很有帮助.
language-agnostic coding-style naming-conventions variable-names
使用时将变量保存在R数据文件中时save,它将以保存它的会话中的名称保存.当我稍后从另一个会话加载它时,它加载了相同的名称,加载脚本不可能知道.此名称可能会覆盖加载会话中同名的现有变量.有没有办法将数据文件中的对象安全地加载到指定的变量名中,而没有破坏现有变量的风险?
x = 5
save(x, file="x.Rda")
Run Code Online (Sandbox Code Playgroud)
x = 7
load("x.Rda")
print(x) # This will print 5. Oops.
Run Code Online (Sandbox Code Playgroud)
x = 7
y = load_object_from_file("x.Rda")
print(x) # should print 7
print(y) # should print 5
Run Code Online (Sandbox Code Playgroud) 我正在开发一个从变量转储数据的工具.我需要转储变量名称,以及值.
我的解决方案:将变量名称存储为字符串,并打印"变量名称",后跟其值.
是否有任何编程方式来了解变量名称?
我偶然发现了一些像这样的(c ++)代码:
int $T$S;
Run Code Online (Sandbox Code Playgroud)
首先,我认为它是某种PHP代码或者错误地粘贴在那里但它编译并运行得很好(在MSVC 2008上).
什么类型的字符对C++中的变量有效,是否还有其他奇怪的字符可以使用?
我最近写了一些代码,我无意中将一个变量名重用作为一个动作的参数,该动作在一个已经具有同名变量的函数中声明。例如:
var x = 1;
Action<int> myAction = (x) => { Console.WriteLine(x); };
Run Code Online (Sandbox Code Playgroud)
当我发现重复时,我惊讶地发现代码编译并完美运行,根据我对 C# 中作用域的了解,这不是我所期望的行为。一些快速的谷歌搜索出现了抱怨类似代码确实会产生错误的SO 问题,例如Lambda Scope Clarification。(我将该示例代码粘贴到我的 IDE 中以查看它是否可以运行,只是为了确保它可以完美运行。)此外,当我在 Visual Studio 中进入“重命名”对话框时,第一个x被突出显示为名称冲突。
为什么这段代码有效?我在 Visual Studio 2019 中使用 C# 8。
bash shell脚本是否区分大小写?
变量date是一样的DATE吗?
这在某种程度上是学术性的,但不过.
Python语法禁止使用数字启动变量名称.但这可以像这样回避:
>>> globals()['1a'] = 1
>>> globals()['1a']
1
Run Code Online (Sandbox Code Playgroud)
同样地locals().
这是否意味着,Python实际上允许它,只是不是很明显?
编辑:
我的问题不是,是否允许.我知道,它在Python中是正式不允许的.问题是为什么我可以通过globals()直接解决来解决它,并且这会破坏其他规则或指导方针,甚至可能有一个很好的理由/应用程序来允许它.
我目前正在尝试删除我的项目中的所有错误和警告,我的PHPStorm中的检查工具给了我.
我遇到一个片段PHPStorm说"未使用的私有方法_xxx"虽然它实际上使用,但以动态的方式.这是一个简化的代码段:
<?php
class A
{
private function _iAmUsed()
{
//Do Stuff...
}
public function run($whoAreYou)
{
$methodName = '_iAm' . $whoAreYou;
if (method_exists($this, $methodName)) {
$this->$methodName();
}
}
}
$a = new A();
$a->run('Used');
?>
Run Code Online (Sandbox Code Playgroud)
在这个片段中,PHPStorm将告诉我"未使用的私有方法_iAmUsed",而事实上,它被使用...我怎么能通过添加PHPDocs或其他东西,让我的IDE理解我的方法实际上是用的?
请注意,我给我的"运行"调用,一个静态字符串,但我们可以想象这个:
<?php
$a->run($_POST['whoYouAre']); //$_POST['whoYouAre'] == 'Used'
?>
Run Code Online (Sandbox Code Playgroud)
非常感谢!
variable-names ×10
variables ×3
c++ ×2
bash ×1
c ×1
c# ×1
c#-8.0 ×1
coding-style ×1
identifier ×1
lambda ×1
linux ×1
php ×1
phpdoc ×1
phpstorm ×1
python ×1
r ×1
rdata ×1
scope ×1
shell ×1
sql ×1
sql-server ×1
t-sql ×1
tablename ×1
visual-c++ ×1