标签: void

PostgreSQL函数返回void

写入PL/pgSQLSQL可定义为的函数RETURNS void.我最近偶然发现了结果的奇怪差异.

请考虑以下演示:

CREATE OR REPLACE FUNCTION f_sql()
  RETURNS void AS
'SELECT NULL::void' -- "do nothing", no special meaning
  LANGUAGE sql;

CREATE OR REPLACE FUNCTION f_plpgsql()
  RETURNS void AS
$$
BEGIN
NULL; -- "do nothing", no special meaning
END;
$$  LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)

该函数f_sql()使用唯一可能的方法SELECT(在SQL函数中作为最后一个命令)RETURNS void.我使用它只是因为它是用于此测试目的的最简单方法 - 任何其他函数,例如,UPDATE或者DELETE显示相同的行为.

现在,void是一种虚构的类型.虽然plpgsql功能似乎返回一个空字符串类型相当于void有效,''::void.该sql功能似乎回归NULL::void.

db=# SELECT f_sql() IS NULL; …
Run Code Online (Sandbox Code Playgroud)

postgresql null stored-procedures plpgsql void

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

为什么JDK中存在Void包装类?

可能重复:
Java Void引用类型的用途?

Void现实世界中问题的真正用法是什么?在哪种情况下我们可以使用这个类?

java void

17
推荐指数
3
解决办法
3728
查看次数

Void返回类型在Kotlin中意味着什么

我尝试在Kotlin中创建函数而不返回值.我编写了一个类似于Java的函数,但使用了Kotlin语法

fun hello(name: String): Void {
    println("Hello $name");
}
Run Code Online (Sandbox Code Playgroud)

我有一个错误

错误:带有块体('{...}')的函数中需要'return'表达式

经过几次修改后,我得到了具有可空Void作为返回类型的工作函数.但这并不是我所需要的

fun hello(name: String): Void? {
    println("Hello $name");
    return null
}
Run Code Online (Sandbox Code Playgroud)

根据Kotlin文档,单元类型对应于Java中的void类型.所以在Kotlin中没有返回值的正确函数是

fun hello(name: String): Unit {
    println("Hello $name");
}
Run Code Online (Sandbox Code Playgroud)

要么

fun hello(name: String) {
    println("Hello $name");
}
Run Code Online (Sandbox Code Playgroud)

问题是:Void在Kotlin 中意味着什么,如何使用它以及这种用法的优点是什么?

java return-type void kotlin

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

通用与类型安全?在C中使用void*

来自OO(C#,Java,Scala),我非常重视代码重用和类型安全的原则.上述语言中的类型参数可以完成这项工作并启用通用数据结构,这些结构既是类型安全的,也不会"浪费"代码.

当我陷入C时,我意识到我必须做出妥协,我希望它是正确的.我的数据结构void *在每个节点/元素中都有一个,我失去了类型安全性,或者我必须为我想要使用它们的每种类型重新编写我的结构和代码.

代码的复杂性是一个显而易见的因素:遍历数组或链接列表是微不足道的,并且添加*next一个结构不是额外的努力; 在这些情况下,不尝试重用结构和代码是有道理的.但对于更复杂的结构,答案并不那么明显.

还有模块化和可测试性:将类型及其操作与使用该结构的代码分离,使测试更容易.反之亦然:在一个结构上测试某些代码的迭代,同时它试图做其他事情变得混乱.

那么你的建议是什么?void *和重用或类型安全和重复的代码?有没有一般原则?当我不适合时,我是否试图强迫OO进行程序化?

编辑:请不要推荐C++,我的问题是关于C!

c generics void void-pointers

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

在不使用其返回值的情况下调用非void函数.究竟发生了什么?

所以,我在这里找到了一个类似的问题,但答案更多的是关于风格以及你是否能够做到这一点.

我的问题是,当你调用一个返回一个对象的非void函数时,实际发生了什么,但是你从不分配或使用所述返回的对象?所以,更少关于你是否可以,因为我完全知道你可以理解上面链接的另一个问题......编译器/运行时环境有什么作用?

这不是特定于语言的问题,但如果您回答,请说明您所指的语言,因为行为会有所不同.

c# c++ java return-value void

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

C++类型转换:将指针从void指针转换为类指针

如何将指向void对象的指针强制转换为类对象?

c++ pointers void

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

静态内联空隙和空白之间有什么区别?

我正在使用C语言并修改以前由其他人编写的代码.我正在努力解决一些问题,而且我正在努力尽可能多地了解正在发生的事情.所以,正如我的问题所说,创建函数static inline voidvoid创建函数之间有什么区别?我为这篇长篇文章提前道歉,但我想让你知道我做了一些研究,但不明白我发现了什么.

我找到了一个static令我困惑的解释:

静态说明符表示无法从其他文件引用该函数; 也就是说,链接器不会导出名称.

通过阅读本文,我假设引用一个函数与调用函数不同?我假设因为这个函数是从另一个.c文件调用的.如果是这种情况,那么什么是引用函数?

通过同一个网站,他们解释内联功能,我不明白它的含义.

__inline关键字告诉编译器将函数定义中的代码替换为函数调用的每个实例.但是,替换仅在编译器自行决定时发生.例如,如果函数的地址被采用或者它太大而不能内联,则编译器不会内联函数.

咦???

非常感谢任何帮助,我再次为这篇非常长的帖子道歉.

以下位于file1.c(使用通用名称,因为我觉得不重要)

COMPLEX cNoiseSample;
CGauss( &cNoiseSample, loopbackRadio->pState );
Run Code Online (Sandbox Code Playgroud)

以下文件位于file2.c中

static inline void CGauss( COMPLEX * pcGauss, P_OS_UNIFORM_RAND_STATE pState )
{
    //code
}
Run Code Online (Sandbox Code Playgroud)

c static inline void

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

java.lang.Void vs void vs Null

究竟是什么区别Void,void和我可以只使用null呢?

我问这是因为我正在查看示例Android代码,他们使用Void但是它上面有Eclipse错误(它说Void cannot be resolved to a variable).

我破解的代码是

public class MyAsyncTask extends AsyncTask<Void, Void, Boolean>{
    ...
}
Run Code Online (Sandbox Code Playgroud)

我这样用它

MyAsyncTask myAsyncTask = new MyAsyncTask();
myAsyncTask.execute((Void),null);//this is the line that breaks  "Void cannot be resolved to a variable"
Run Code Online (Sandbox Code Playgroud)

java null android void

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

在 Jest 中,我如何嘲笑无效的 Promise?

我正在使用 Jest 和 Typescript。我有一个不返回任何内容的异步函数(void)。我如何模拟返回 void?我尝试了下面的

const myMockFn = jest.fn().mockImplementationOnce(() => Promise.resolve(void));
jest.mock('../config', () => ({
  setup: async () =>
  myMockFn(),
}));
Run Code Online (Sandbox Code Playgroud)

但我收到编译错误

Expression expected.
Run Code Online (Sandbox Code Playgroud)

与“Promise.resolve(void)”相关。

mocking void promise typescript ts-jest

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

(void)var实际上做了什么?

请考虑以下事项main():

int main(int argc, char *argv[])
{
    return (0);
}
Run Code Online (Sandbox Code Playgroud)

在编译时cc -Wall -Wextra,会生成警告"未使用的参数".

当我不需要在函数中使用参数时(例如在不使用其参数的信号处理函数int),我习惯于执行以下操作:

  int main(int argc, char *argv[])
  {
      (void)argc;
      (void)argv;
      return (0);
  }
Run Code Online (Sandbox Code Playgroud)

(对于特定的main(),我有时看到别人做的:argv = argv - argc + argc)

但是,是什么(void)var真正

我明白这(void)是一个演员,所以我想我正在抛弃变量?什么是var;线(不投)呢?这是一个空任务,一个空表达式?

我想了解实际发生了什么.

c void c89

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