标签: statements

为什么 C 中的函数 return 是一条语句?

一个表达式产生一个值,语句改变机器的状态,也就是副作用。但是,我一直在读那个函数 return 是一个声明。如果我调用一个返回空值的函数,这将如何改变机器的任何状态?或者,如果我调用一个返回非空值的函数,如果我不使用它而只是调用它,这将如何改变任何状态?

我只是不明白为什么返回是一个声明?

资料来源:编程语言中的概念。剑桥:剑桥大学出版社,3.4.1 Statements and Expressions,p。26

c statements

16
推荐指数
3
解决办法
471
查看次数

如何在管道内使用"if"语句

我正试图if在管道内使用.

我知道有where(别名?)过滤器,但是如果我想只在满足某个条件时才激活过滤器怎么办?

我的意思是,例如:

get-something | ? {$_.someone -eq 'somespecific'} | format-table

如何if在管道内使用来打开/关闭过滤器?可能吗?是否有意义?

谢谢

编辑澄清

没有管道,它看起来像这样:

if($filter) {
 get-something | ? {$_.someone -eq 'somespecific'}
}
else {
 get-something
}

在ANSWER的riknik之后编辑

愚蠢的例子显示了我在寻找什么.您有一个存储在变量上的非规范化数据表,$data并且您希望执行一种"向下钻取"数据过滤:

function datafilter {
param([switch]$ancestor,
    [switch]$parent,
    [switch]$child,
    [string]$myancestor,
    [string]$myparent,
    [string]$mychild,
    [array]$data=[])

$data |
? { (!$ancestor) -or ($_.ancestor -match $myancestor) } |
? { (!$parent) -or ($_.parent -match $myparent) } |
? { (!$child) -or ($_.child -match $mychild) } |

} …

powershell pipeline statements conditional-statements

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

SQL中基数的定义是什么?

我的学校书籍数据库系统将基数定义如下:

关系的基数是它包含的元组数.相反,元组的数量被称为关系的基数,并且随着元组的添加或删除而改变.高基数 - 许多元组,低基数 - 少数元组.

关于Cardinality(SQL语句)的维基百科文章,定义如下:

基数是指数据库表的特定列(属性)中包含的数据值的唯一性.基数越低,列中重复的元素越多.基数有3种类型:高基数,正常基数和低基数.

它们可能都是正确的,但我无法将这两个定义作为相关定义连接起来.一个改述将是适当的!

mysql sql cardinality statements

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

Python中的语句和函数有什么区别?

编辑:建议的副本,不回答我的问题,因为我主要关注Python的差异.建议的副本比这个问题要广泛得多.

我最近开始学习Python.我目前正在阅读"以艰难的方式学习Python".我有一些特殊的编程经验,但是我回到开始时就从头开始学习所有内容.

在本书中,首先是课程中的一个print,作者在Python 2.7中提供了各种使用说明,例如:

print "This is fun."
Run Code Online (Sandbox Code Playgroud)

我发现自己想知道print从编程角度来看这里的技术是什么.一些研究发现了这一点,PEP-3105

在这种情况下,使print功能:

print语句早已出现在Python 3000中要删除的可疑语言功能列表中,例如Guido的"Python Regrets"演示文稿1.因此,这个PEP的目标并不新鲜,尽管它可能在Python开发人员中引起很大争议.

print是Python 2.7中的一个语句,以及Python 3中的一个函数.

但我一直无法找到a statement和a 之间差异的直接定义function.我发明了这个也是由发明Python的人Guido van Rossum解释了为什么将打印作为函数而不是声明是好的.

根据我的阅读,似乎函数是一些代码,它接受参数并返回一个值.但是print在python 2.7中没有这样做吗?是不是接受字符串并返回串联字符串?

Python中的语句和函数有什么区别?

python function statements python-2.7 python-3.x

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

是否有一个VB等同于C#的'continue'和'break'语句?

为了论证,我怎么能在VB中这样做?

foreach foo in bar
{
   if (foo == null)
       break;

   if (foo = "sample")
       continue;

   // More code
   //...
}
Run Code Online (Sandbox Code Playgroud)

vb.net statements

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

两个包含begin和end的PLSQL语句,单独运行但不在一起?

只是想知道是否有人可以帮助这个,我有两个PLSQL语句来改变表(添加额外的字段),它们如下:

-- Make GC_NAB field for Next Action By Dropdown

begin
if 'VARCHAR2' = 'NUMBER' and length('VARCHAR2')>0 and length('')>0 then
  execute immediate 'alter table "SERVICEMAIL6"."ETD_GUESTCARE" add(GC_NAB VARCHAR2(10, ))';
elsif ('VARCHAR2' = 'NUMBER' and length('VARCHAR2')>0 and length('')=0) or
  'VARCHAR2' = 'VARCHAR2' then
  execute immediate 'alter table "SERVICEMAIL6"."ETD_GUESTCARE" add(GC_NAB VARCHAR2(10))';
else
  execute immediate 'alter table "SERVICEMAIL6"."ETD_GUESTCARE" add(GC_NAB VARCHAR2)';
end if;
commit;
end;

-- Make GC_NABID field for Next Action By Dropdown

begin
if 'NUMBER' = 'NUMBER' and length('NUMBER')>0 and length('')>0 then
  execute …
Run Code Online (Sandbox Code Playgroud)

oracle plsql oracle10g statements

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

ISO C90禁止混合声明和代码...但是在某些情况下允许?

我正在使用以下标志(其中cc是gcc 4.2或clang 8.0):

$ cc -Wall -Werror -pedantic -ansi -std=c89 main.c

(我知道-ansi标志在这种情况下有点多余)

以下给了我预期的错误

main.c:31:8: warning: ISO C90 forbids mixing declarations and code [-Wdeclaration-after-statement]
  vec3 abc = {0};
Run Code Online (Sandbox Code Playgroud)
int main()
{
  vec3 a = {0};
  vec3 b = {0};

  Vec3(2, 2, 2);

  vec3 abc = {0}; // Declared after a function call

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是,以下内容不

int main()
{
  vec3 a = Vec3(0, 1, 2);
  vec3 b = Vec3(0, 1, 2);

  vec3 abc = {0}; // Declared after a function call …
Run Code Online (Sandbox Code Playgroud)

c declaration c89 statements

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

Java程序中的一行是否与声明相同?

我是一名Java菜鸟.我只用了几天而且还在努力解决这个问题.在一个程序中,一行与声明是一回事吗?

java lines statements

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

在`return`结尾添加分号会有所不同吗?

锈指南指出:

分号通过丢弃其值并返回单位将任何表达式转换为语句.

我以为我得到了这个概念,直到我做了一个实验:

fn print_number(x: i32, y: i32) -> i32 {
    if x + y > 20 { return x }      
    x + y 
}
Run Code Online (Sandbox Code Playgroud)

编译好.然后,我在返回行(return x;)的末尾添加了一个分号.据我所知,这将该行转换为语句,返回单位数据类型().

尽管如此,最终结果是一样的.

expression statements rust

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

声明地点是什么意思?

我正在读一本书,在这里,给出了这样的程序-

#include<fstream>
#include<string>
#include<vector>

int main()
{
    string filename; // #1

    cout << "Please enter name of file to open : ";
    cin >> filename;

    if(filename.empty())
    {
        cerr << "Something...";
    }
    ifstream inFile(filename.c_str());  // #2
    if(!inFile)
    {
        cerr<< "Somthing...";
    }
    .
    .
    .
}
Run Code Online (Sandbox Code Playgroud)

并且解释段说,声明语句显示声明的位置,这是这样解释的

声明语句出现在第一次使用定义对象的地方。

我对那句话很困惑,我无法理解它的实际含义。我需要用一些例子来解释。

c++ declaration statements

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