标签: scalar

LinqToSql中的标量函数

在ADO.Net/SQLClient中,我经常会这样做:

SELECT COUNT(*) FROM SomeTable WHERE SomeKey = 1234

...并使用executioncalar来触发count来返回count的值 - 以便检查是否存在某些内容.

我如何使用LinqToSql做同样的事情?

.net scalar linq-to-sql

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

Perl条件不替换标量值

出于某种原因,我的if语句没有按照我希望的方式工作.

use strict;
use warnings;

my $syl;
my $name = "Chris";
print "Enter my name\n";
$syl = <>;
if ($syl eq $name)
{
  print "You entered my name!\n";
}
else
{
  print "That's not my name!\n";
}
Run Code Online (Sandbox Code Playgroud)

看起来它应该适用于我读过的所有教程,但是当我输入"Chris"时,无论是大小写,小写,有或没有引号,它总是评估为false.使用严格和使用警告不告诉我我做错了什么,所以,如果有的话,我可以做什么?

perl scalar if-statement

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

Perl结构和赋值

在perldata中,我找到了以下示例和解释.

@foo = ('cc', '-E', $bar);

assigns the entire list value to array @foo, but

$foo = ('cc', '-E', $bar);

assigns the value of variable $bar to the scalar variable $foo. 
Run Code Online (Sandbox Code Playgroud)

这真让我困惑,所以$foo相当于$bar?如何理解之间的区别@foo$foo

arrays perl scalar

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

字符串类型是标量,如果是,为什么?

一些网站声称字符串类型是标量.据我了解,标量是单值类型,而不是数组类型.但是字符串本质上不是一个字符串吗?那为什么它会成为标量呢?

编辑:如果答案/解释从C到C++不同,我想解释包括两种语言.我正在为这个问题添加C++标签.

c c++ string scalar

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

如何将Perl数组作为标量传递给子例程?

这是一位新生的Perl开发者.我一直在wra my my and and and and ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

我有以下代码(只剩下相关部分),因为其余的工作):

my @arrMissingTids;
@arrMissingTids = %hshTids;

my $missingtid;
foreach $missingtid (@arrMissingTids) {
    print "$missingtid\n";
}
Run Code Online (Sandbox Code Playgroud)

这很好用,返回我想要在数组中的值:

500000246,500000235,500000185,500000237,500000227,500000252
Run Code Online (Sandbox Code Playgroud)

但是,当我将它传递给子程序并将其包含在变量名中时,它不提供上面所写的列表,而只是提供数字1.代码如下:

myqry(@arrMissingTids);

sub myqry($) {

    my $missingtids = @_;

    $sql = "select 
        i.tid i_tid, i.name i_name …
Run Code Online (Sandbox Code Playgroud)

arrays perl scalar

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

标量删除析构函数

我有一段代码(来自DLL),如下所示:

class A {
    public:
        virtual ~A();
};

class B : public A {
    public:
        ~B();
}

~A() {
    // #1
}

~B() {
    // #2
}
Run Code Online (Sandbox Code Playgroud)

当我用delete an_instance_of_B我得到scalar deleting destructor.任何解决方法?

c++ polymorphism scalar destructor delete-operator

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

如何将标量传递给向量(1D数组)到Fortran子例程?

有这个程序:

INTEGER i,k
REAL*8  mp(15,48)
REAL*8  sp(15)
k=0
do i=1,12
   k=k+1
   call Equaltensors(sp,mp(1,k),15)
enddo
end

c=====================

subroutine Equaltensors(tensA,tensB,n)
REAL*8 tensA(n),tensB(n)
INTEGER i
do   i=1,n
     tensB(i)=tensA(i)
enddo
return
end
Run Code Online (Sandbox Code Playgroud)

所以基本上mp(1,1)等的值作为向量tensB(15)传递给子程序,n = 15.我不明白的是如何将实数存储在子程序中的一维数组中.

arrays scalar fortran vector subroutine

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

为什么我在perl的标量上下文中获取列表中的最后一个值?

我曾经假设,在perl中,$x=(2,3,4,5)并且($x)=(2,3,4,5)会给我相同的结果,但对我的测试中发生的事情感到惊讶.我想知道为什么这种行为是这样的,为什么wantarray表现不同.这是我的测试和结果:

>perl -e '$x=(1,2,3,5);print("$x\n")'
5
>perl -e '($x)=(1,2,3,5);print("$x\n")'
1
>perl -e '$x=(wantarray ? (1,2,3,5) : 4);print("$x\n")'
4
>perl -e '($x)=(wantarray ? (1,2,3,5) : 4);print("$x\n")'
4
Run Code Online (Sandbox Code Playgroud)

所有平台的这种行为是否一致/可靠?

哎呦.wantarray用于子程序调用的上下文...

>perl -e '$x=test();sub test{return(1,2,3,5)};print("$x\n")'
5
>perl -e '($x)=test();sub test{return(1,2,3,5)};print("$x\n")'
1
>perl -e '$x=test();sub test{return(wantarray ? (1,2,3,5) : 4)};print("$x\n")'
4
>perl -e '($x)=test();sub test{return(wantarray ? (1,2,3,5) : 4)};print("$x\n")'
1
Run Code Online (Sandbox Code Playgroud)

所以我猜它是一致的,但为什么列表返回标量上下文中的最后一个值?

perl scalar list

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

使用"for"对变量进行局部化显然很糟糕.为什么?

所以我回答了一个关于SO的问题,并为此得到了很多抨击.我已经使用Perl很多年了,并且非常多地使用这个主题.

所以让我们从一些代码开始吧.我在这些例子中进行搜索和替换.我们的想法是搜索onethree从两个字符串中搜索并替换它们.

$values = 'one two three four five';
$value2 = 'one 2 three four 5';

$values =~ s/one//g;
$values =~ s/three//g;

$values2 =~ s/one//g;
$values2 =~ s/three//g;
Run Code Online (Sandbox Code Playgroud)

这段代码很简单,每个人都接受它.

我还可以构建一个数组或散列,其中包含要搜索和替换的值列表,这也是可以接受的.

但是,当我构建一个脚本来进行话题化$values$values2减少构建脚本的键入量时,它似乎被误解了?

这是代码.

$values = 'one two three four five';
$value2 = 'one 2 three four 5';

for ( $values, $values2 ) {
    s/one//g;
    s/three//g;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码将讨论for块的持续时间的变量,但许多程序员反对这一点.我想明白为什么这是不可接受的?

perl scalar

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

Perl:匿名列表的长度

如何获取匿名列表的长度?

perl -E 'say scalar ("a", "b");' # => b
Run Code Online (Sandbox Code Playgroud)

我希望scalar在标量上下文中返回列表-它的长度。

为什么返回第二个(最后一个)元素?

它适用于数组:

perl -E 'my @lst = ("a", "b"); say scalar @lst;' # => 2
Run Code Online (Sandbox Code Playgroud)

arrays perl scalar list perl5

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