PL/pgSQL的文档说,变量的声明和赋值完成:=.但是简单,更短,更现代 (见脚注) =似乎按预期工作:
CREATE OR REPLACE FUNCTION foo() RETURNS int AS $$
DECLARE
i int;
BEGIN
i = 0;
WHILE NOT i = 25 LOOP
i = i + 1;
i = i * i;
END LOOP;
RETURN i;
END;
$$ LANGUAGE plpgsql;
> SELECT foo();
25
Run Code Online (Sandbox Code Playgroud)
请注意,Pl/pgSQL可以清楚地区分分配和比较,如行中所示
WHILE NOT i = 25 LOOP
Run Code Online (Sandbox Code Playgroud)
所以,问题是:
=代替的已知后果:=?编辑/脚注:
请使用" 简短,不完整和错误的编程语言历史 "中的"更现代"部分:
1970年 - Niklaus Wirth创建了Pascal,一种程序语言.批评者立即谴责Pascal,因为它使用"x:= x + y"语法而不是更熟悉的类C"x = x + y".尽管C还没有被发明,但这种批评仍在发生. …
:=操作数意味着什么,更具体地说是Python?
有人可以解释如何阅读这段代码吗?
node := root, cost = 0
frontier := priority queue containing node only
explored := empty set
Run Code Online (Sandbox Code Playgroud) 我遇到了流行的data.table包装,有一件事特别引起了我的兴趣.它有一个就地分配操作符
:=
这在基础R中没有定义.事实上,如果你没有加载data.table包,如果你试图使用它(例如a := 2),它会引发错误:
错误:无法找到功能
":="
另外,为什么:=工作?为什么R允许您定义:=为中缀运算符,而其他每个中缀函数都必须被包围%%,例如
`:=` <- function(a, b) {
paste(a,b)
}
"abc" := "def"
Run Code Online (Sandbox Code Playgroud)
显然,它并不是%function.name%用于定义中缀函数的替代语法.正在data.table利用R的一些解析怪癖?这是一个黑客?它将来会被"修补"吗?
我:=:在一些Clarion代码中找到了这个符号,我似乎无法弄明白它的作用.这段代码是多年前由前一位开发人员编写的,所以我不能问他.我也无法"colon equals colon"在Google中找到任何结果.
以下是代码示例,其中bufSlcdpaDtl是文件对象:
lCCRecord Like(bufSlcdpaDtl),Pre(lCCRecord)
! ...other stuff...
lCCRecord :=: bufSlcdpaDtl
Run Code Online (Sandbox Code Playgroud)