相关疑难解决方法(0)

在SQL Server 2005中"select*from table"vs"select colA,colB,etc from table"

为一篇冗长的帖子道歉,但我需要发布一些代码来说明问题.

灵感来自问题*什么是不使用选择的原因,我决定指出一些我之前注意到的select*行为的观察结果.

让我们的代码说明一切:

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[starTest]') AND type in (N'U'))
DROP TABLE [dbo].[starTest]
CREATE TABLE [dbo].[starTest](
    [id] [int] IDENTITY(1,1) NOT NULL,
    [A] [varchar](50) NULL,
    [B] [varchar](50) NULL,
    [C] [varchar](50) NULL
) ON [PRIMARY]

GO

insert into dbo.starTest(a,b,c)
select 'a1','b1','c1'
union all select 'a2','b2','c2'
union all select 'a3','b3','c3'

go
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[vStartest]'))
DROP VIEW [dbo].[vStartest]
go
create view dbo.vStartest as
select * from dbo.starTest …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2005 views

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

sizeof表现出乎意料

请考虑以下代码:

  #include <stdio.h>
  int main(void)
  {
    int a[10];
    printf("%d",(int)sizeof(a)); //prints 10*sizeof(int) (40 on my compiler)
    printf("%d",(int)sizeof(a-3)); //prints sizeof(int) (4 on my compiler)

  }
Run Code Online (Sandbox Code Playgroud)

我知道这sizeof()是一个编译时运算符,但我很惊讶地看到第二个输出printf().可能是什么原因?是否存在sizeof()从数组类型到整数类型的参数的隐式转换?

c

12
推荐指数
2
解决办法
507
查看次数

`==`运算符何时不等于`is`运算符?(蟒蛇)

我注意到我可以使用==运算符来比较所有本机数据类型(整数,字符串,布尔值,浮点数等)以及包含本机数据类型的列表,元组,集和字典.在这些情况下,==操作员检查两个对象是否相等.但在其他一些情况下(尝试比较我创建的类的实例),==运算符只检查两个变量是否引用相同的对象(因此在这些情况下,==运算符等同于is运算符)

我的问题是:==运营商什么时候做的不仅仅是比较身份?

编辑:我正在使用Python 3

python comparison equality

12
推荐指数
3
解决办法
4337
查看次数

块样式真的这么重要吗?

我刚观看了Douglas Crockford关于2009年着作"JavaScript:The Good Parts"的演讲视频.

在视频中,他解释说以下块是危险的,因为它会产生无声错误:

return
{
    ok: false
};
Run Code Online (Sandbox Code Playgroud)

它实际上应该这样写(强调虽然看似相同,但行为差异至关重要):

return {
    ok: false
};
Run Code Online (Sandbox Code Playgroud)

你可以在32分钟左右看到他的评论:http://www.youtube.com/watch?v = hQVTIJBZook&feature = player_embedded#!&start = 1920

我以前没有听过这个,并且想知道这个规则是否仍然适用,或者自从这个陈述发表以来JavaScript语言的这种要求是否被克服了.

我发现这非常有趣,因为我没有以这种方式编写代码,并想检查这些信息是否已过时.

javascript

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

为什么允许字符串字符串并且编译器不允许使用int int?

我只是想检查编译器是否允许类型名称作为变量名称.我试过的时候

int int;
Run Code Online (Sandbox Code Playgroud)

它报告了一个错误说

错误C2632:'int'后跟'int'是非法的

但是当我尝试的时候

#include <string>
using namespace std;

int main()
{
    string string;
}
Run Code Online (Sandbox Code Playgroud)

它没有给出任何错误.这两个stringint是数据类型.

为什么编译器允许string但不允许int

编辑:包括更新.

编辑:有些人说int不是一个类.在这种情况下,为什么允许下面的行.

int a(10);
Run Code Online (Sandbox Code Playgroud)

它的工作方式类似于类的构造函数.

c++ types

9
推荐指数
2
解决办法
731
查看次数

PHP - 在函数内定义类

这是一种不好的做法吗?

喜欢:

function boo(){
  require_once("class.moo.php");
}
...
Run Code Online (Sandbox Code Playgroud)

php oop class function

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

为什么值不能在C#中隐式转换为字符串?

我有一些代码:

int value = 5;
MessageBox.Show ( value );
Run Code Online (Sandbox Code Playgroud)

MessageBox.Show抱怨说:

"无法从'int'转换为'string'"

我似乎记得一些情况,其中值似乎被隐式转换为字符串值,但无法准确地回忆它们.

这个决定背后的原因是什么,任何值都不能隐式转换为字符串值?

.net c# compiler-construction string implicit-conversion

9
推荐指数
2
解决办法
900
查看次数

用于非字符串的Python实习生

为什么Python intern内置仅用于字符串?应该可以扩展intern到可清除和可比较的类,对吗?

python language-features

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

选择一种中间语言

我目前正在玩编程语言.我花了一些时间用高级语言编写解析器和解释器(最值得注意的是haXe).

我有一些结果,我认为实际上非常好,但现在我想让它们快速.

我的想法是将输入语言翻译成C.
我的C知识仅限于你在大学学到的知识.除了一些练习,我从未编写过实际的C程序.但我相信我能让它发挥作用.

当然,我可以尝试为LLVM编写前端或生成MSIL或JVM字节码.但我觉得现在学到的东西太多了,实际上并没有看到太大的收获.
C也完全是人类可读的,所以如果我搞砸了,理解其中的原因要容易得多.毕竟,C是高水平的.我可以真正地从输入语言中翻译概念,而不需要过多的思维弯曲.我应该在合理的时间内完成一些工作并运行,然后根据需要对其进行优化.

那么:使用C有什么缺点吗?你能推荐另一种选择吗?
感谢您的见解 :)


编辑:一些澄清

  • 我想要一直走下去的原因是,我正在编写一种支持OOP的语言,我想实际实现我的方法调度,因为我有一些非常具体的想法.
  • 主要的使用领域是编写HTTP服务,但我可以想象将绑定添加到GUI库(可能是wxWidgets)或其他什么.

c compiler-construction intermediate-code

7
推荐指数
2
解决办法
2282
查看次数

Perl` $ [`,为什么基地42?

我发现这部分答案真的令人困惑.大多数答案都是一些基本规则的特例,例如"333" + "222" == "333222" but "333" - "222" = 111javascript,其中使用+字符串连接很有用.

$[ - 将阵列基础从0基础更改为基于1基于42基础:WHEEE!

基于42的阵列索引的用例是什么?只是一个搭便车的银河参考指南/令人难以置信的邪恶复活节彩蛋,或实际上有用吗?

perl

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