小编Eva*_*van的帖子

C++ 相当于 Java Map getOrDefault?

Java 的 getOrDefault 是一个很好的构造,可以单行访问映射值或起点(如果不存在)。我在 C++ 的地图参考中没有看到任何并行的内容。是否存在某些东西或者是您自己构建的?

我在地图中有对象,如果它们存在,我会更新它们,但如果它们不存在,我会构造新的。使用 getOrDefault,我可以在默认端构造对象,或者访问它(如果存在)。

http://www.cplusplus.com/reference/map/map/

https://www.geeksforgeeks.org/hashmap-getordefaultkey-defaultvalue-method-in-java-with-examples/

c++ treemap c++17

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

如何使用 pytest 引发检查异常原因?

我想测试是否从另一种异常类型引发异常。

import pytest


def throw_with_cause():
  raise Exception("Failed") from ValueError("That was unexpected.")
 
with pytest.raises(Exception): # from ValueError???
  throw_with_cause()
Run Code Online (Sandbox Code Playgroud)

我很惊讶没有看到一种方法来检查 pytest raises 文档中的异常链。 https://docs.pytest.org/en/6.2.x/reference.html#pytest-raises

有没有一种干净的方法可以使用 ptyest 加注来做到这一点?

python exception pytest python-3.x

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

jOOQ在更新时添加到当前值

我有一列正在运行的事件不断计数。我想通过jOOQ更新执行与以下SQL语句等效的操作:

更新event_table设置event_count = event_count + 3;

3是artibrary,它将int代表我的Java程序中检测到的当前计数。

有没有一种方法可以在不选择一个jOOQ选择中选择值的情况下进行汇总,然后在另一个jOOQ更新中求和,从而导致两次数据库交互?

java postgresql jooq

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

jOOQ 将偏移日期时间返回为 Z (UTC),即使它不是

我有一个简单的 Postgres 测试表,其中包含 id、时间戳和时区。下面的测试和输出应该是不言自明的,但总而言之,我插入了一行,其时间戳的偏移量为 -6。它被正确地插入到数据库中,然后以相同的时间从数据库中加载出来,但是偏移量错误,特别是Z而不是-6。

我尝试将数据库设置为 UTC,当我在命令行中手动选择时,它会正确显示 UTC 时间。将数据库设置为 mountain,它显示预期时间,偏移量为-6。

通过在 jOOQ 中执行的语句强制数据库到不同的时区似乎没有任何作用。

context.execute( "set timezone TO 'GMT';" ); // this has no effect
Run Code Online (Sandbox Code Playgroud)

强制我的系统时间为 UTC 可以有效解决该问题,但由于多种原因是不可接受的。

TimeZone.setDefault( TimeZone.getTimeZone( "UTC" ) ); // this is a band aid that works, but is not sustainable
Run Code Online (Sandbox Code Playgroud)

这是单元测试:

@Test
public void confirmDateRoundTripFromDb() throws SQLException, DatatypeConfigurationException
{
    ZonedDateTime testDate = ZonedDateTime.of( 2019, 05, 30, 12, 54, 32, 203, TimeUtilities.CENTRAL_ZONEID );

    final OffsetDateTime testDateAsOffset = testDate.toOffsetDateTime( );

    try( PGConnection dbConnection = DatabaseUtility.getPostgresConnection( _unitTestConfig.getSection("Postgres").getProperties(), _testDbName ) …
Run Code Online (Sandbox Code Playgroud)

java jooq pgjdbc-ng

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

OpenGL 4.1和Qt 5的严重渲染问题

我已经看到一些有希望的参考,能够在现代OpenGL上运行Qt5.我正在使用以下代码将我的QQuickView设置为OpenGL 4.1 Core(我的MacBook上支持OSX 10.9的最新版本).

QSurfaceFormat sf = g_mainView->format();
sf.setProfile(QSurfaceFormat::CoreProfile);
sf.setVersion(4, 1);
g_mainView->setFormat(sf);
Run Code Online (Sandbox Code Playgroud)

大部分问题.首先,在尝试渲染文本时,应用程序完全崩溃.如果我恰好在我的QML中只有图像,矩形等,我会得到大量的片段着色器错误.

QOpenGLShader::compile(Fragment): ERROR: 0:1: '' :  #version required and missing.
ERROR: 0:5: 'varying' : syntax error syntax error

*** Problematic Fragment shader source code ***
#define lowp
#define mediump
#define highp

            varying highp vec2 qt_TexCoord0;
            uniform highp float qt_Opacity;
            uniform lowp sampler2D source;
            uniform lowp sampler2D maskSource;
            void main(void) {
                gl_FragColor = texture2D(source, qt_TexCoord0.st) * (texture2D(maskSource, qt_TexCoord0.st).a) * qt_Opacity;
            }


***
QQuickCustomMaterialShader: Shader compilation failed:
"ERROR: 0:1: '' …
Run Code Online (Sandbox Code Playgroud)

opengl-4 qt5.3

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

为什么Java String.format的输出为null Boolean,如何将String.format替换为null?

我确信之前已被问过,但我找不到答案.

Boolean nullValue = null;
Boolean falseValue = false;
System.out.println( String.format( "%b %b", nullValue, falseValue ) );
Run Code Online (Sandbox Code Playgroud)

这个"假错误"的输出怎么样?这正是我在机器上得到的东西.Java 8. Mac.Java noob.

编辑

所以这是预期的行为.它看起来不像Boolean toString产生我想要的输出null,false,true的行为.每个想要这个的人都应该自己写一个方法吗?是否有产生该输出的功能?

java string-formatting

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