相关疑难解决方法(0)

遗忘的赋值运算符"="和常见的":="

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还没有被发明,但这种批评仍在发生. …

postgresql plpgsql assignment-operator colon-equals

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

Python中冒号等于(:=)是什么意思?

:=操作数意味着什么,更具体地说是Python?

有人可以解释如何阅读这段代码吗?

node := root, cost = 0
frontier := priority queue containing node only
explored := empty set
Run Code Online (Sandbox Code Playgroud)

python colon-equals

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

为什么:=允许作为中缀运算符?

我遇到了流行的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的一些解析怪癖?这是一个黑客?它将来会被"修补"吗?

r data.table colon-equals

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

符号是什么:=:mean(冒号等于冒号)

:=:在一些Clarion代码中找到了这个符号,我似乎无法弄明白它的作用.这段代码是多年前由前一位开发人员编写的,所以我不能问他.我也无法"colon equals colon"在Google中找到任何结果.

以下是代码示例,其中bufSlcdpaDtl是文件对象:

lCCRecord Like(bufSlcdpaDtl),Pre(lCCRecord)

! ...other stuff...

lCCRecord :=: bufSlcdpaDtl
Run Code Online (Sandbox Code Playgroud)

我想知道它是否类似于::=Python或可能的赋值运算符:=.

operators clarion colon-equals

4
推荐指数
1
解决办法
1904
查看次数