一个表达式产生一个值,语句改变机器的状态,也就是副作用。但是,我一直在读那个函数 return 是一个声明。如果我调用一个返回空值的函数,这将如何改变机器的任何状态?或者,如果我调用一个返回非空值的函数,如果我不使用它而只是调用它,这将如何改变任何状态?
我只是不明白为什么返回是一个声明?
资料来源:编程语言中的概念。剑桥:剑桥大学出版社,3.4.1 Statements and Expressions,p。26
我正试图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) } | } …
我的学校书籍数据库系统将基数定义如下:
关系的基数是它包含的元组数.相反,元组的数量被称为关系的基数,并且随着元组的添加或删除而改变.高基数 - 许多元组,低基数 - 少数元组.
关于Cardinality(SQL语句)的维基百科文章,定义如下:
基数是指数据库表的特定列(属性)中包含的数据值的唯一性.基数越低,列中重复的元素越多.基数有3种类型:高基数,正常基数和低基数.
它们可能都是正确的,但我无法将这两个定义作为相关定义连接起来.一个改述将是适当的!
编辑:建议的副本,不回答我的问题,因为我主要关注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中的语句和函数有什么区别?
为了论证,我怎么能在VB中这样做?
foreach foo in bar
{
if (foo == null)
break;
if (foo = "sample")
continue;
// More code
//...
}
Run Code Online (Sandbox Code Playgroud) 只是想知道是否有人可以帮助这个,我有两个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) 我正在使用以下标志(其中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) 我是一名Java菜鸟.我只用了几天而且还在努力解决这个问题.在一个程序中,一行与声明是一回事吗?
该锈指南指出:
分号通过丢弃其值并返回单位将任何表达式转换为语句.
我以为我得到了这个概念,直到我做了一个实验:
fn print_number(x: i32, y: i32) -> i32 {
if x + y > 20 { return x }
x + y
}
Run Code Online (Sandbox Code Playgroud)
编译好.然后,我在返回行(return x;
)的末尾添加了一个分号.据我所知,这将该行转换为语句,返回单位数据类型()
.
尽管如此,最终结果是一样的.
我正在读一本书,在这里,给出了这样的程序-
#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)
并且解释段说,声明语句显示声明的位置,这是这样解释的
声明语句出现在第一次使用定义对象的地方。
我对那句话很困惑,我无法理解它的实际含义。我需要用一些例子来解释。
statements ×10
c ×2
declaration ×2
c++ ×1
c89 ×1
cardinality ×1
expression ×1
function ×1
java ×1
lines ×1
mysql ×1
oracle ×1
oracle10g ×1
pipeline ×1
plsql ×1
powershell ×1
python ×1
python-2.7 ×1
python-3.x ×1
rust ×1
sql ×1
vb.net ×1