问题列表 - 第317977页

Haskell 在评估条件时并不懒惰

我期待 Haskell 进行评估,exits并且hasPerms仅在需要时进行评估。但下面的代码抛出异常:getPermissions:getFileStatus: does not exit (No such file or dir ecty)。

{-# LANGUAGE MultiWayIf #-}
{-# OPTIONS_GHC -Wno-missing-signatures #-}

import System.Directory
import System.Exit (exitWith, ExitCode (ExitFailure, ExitSuccess))

main = do
    let filename = "test.txt"
    exists <- doesFileExist filename
    hasPerms <- hasPermission filename

    if | not (exists && hasPerms) -> exit
       | otherwise -> return ()

    doSomethingWithFile filename

hasPermission filename = do
    perms <- getPermissions filename
    return $ readable perms && writable perms

doSomethingWithFile …
Run Code Online (Sandbox Code Playgroud)

haskell

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

如何修复 Visual Studio 2022 中包源映射关闭的问题?

当我单击 NuGet 包管理器中的任何包时,我看到消息“包源映射在 Visual Studio 2022 17.8.0 中已关闭” 。

在此输入图像描述

当我单击“配置”链接时,它会打开以下窗口。

我也想问这个错误是什么意思?为什么我会看到这个错误?我需要修复它还是可以忽略它?

在此输入图像描述

c# visual-studio nuget nuget-package visual-studio-2022

5
推荐指数
1
解决办法
3735
查看次数

.NET 8 和 SQL Server 2016 - Contains() 抛出错误

我决定将我的项目从 切换.NET6到.NE 8. 我的项目数据库是SQL Server 2016。

起初一切都很顺利,但我遇到了一个错误:

var seferIds = tList.expedition.Select(r => r.Key).ToArray();
var sql = (from h in context.Line
           join v in context.Route on h.id equals v.lineId
           join s in context.Expedition on v.id equals s.routeId
           where seferIds.Contains(s.id)
           select new { h, v, s })
          .ToDictionary(r => r.s.id);
Run Code Online (Sandbox Code Playgroud)

这样,我就无法Contains()在使用数据库表 ( ) 创建的 Linq 查询中使用AsQueryable。

我做了一些研究,如果我将其定义为

where seferIds.AsQueryable().Contains(s.id)
Run Code Online (Sandbox Code Playgroud)

错误消失。同时,我需要seferIds.Any()在我的代码中以 的形式进行空检查。

我查看了使用 SQL Server 2019 作为数据库是否会遇到相同的错误,并且可以where seferIds.Contains(s.id)正常工作,没有任何问题,也没有错误。

至于我的问题,这个问题是.net8不再兼容旧数据库版本的问题吗?还有其他我错过的情况吗?

我想知道这个错误是否有不同的解决方案。

sql-server entity-framework-core asp.net-core .net-8.0 ef-core-8.0

5
推荐指数
1
解决办法
536
查看次数

std::string 在 opencv 中被视为 cv::String

我在 Visual Studio 19 中有一个 C++20 控制台项目,具有发布配置和 /MT 标志。我在项目中明确指定类型的命名空间。当我创建时

std::string Foo, 
Run Code Online (Sandbox Code Playgroud)

它创建 std::string 类型。到目前为止,一切都很好。然而,当我创建

std::vector <std::string> Bar,
Run Code Online (Sandbox Code Playgroud)

相反,它创建了一种std::vector<cv::String>类型,这会导致不良后果。cv 命名空间来自 OpenCV4。不仅来自不同的命名空间,类型本身也以大写“S”开头。我的项目中的任何地方都没有任何“使用命名空间”或任何其他“使用”。

有任何想法吗?

我尝试在该行之前使用“using namespace std”,以防万一,但是,正如预期的那样,它不起作用。

我已经预料到了

std::vector <std::string> Bar 
Run Code Online (Sandbox Code Playgroud)

创建一个

std::vector <std::string>
Run Code Online (Sandbox Code Playgroud)

类型,我做错了什么?

c++ opencv namespaces visual-c++ visual-studio-2019

-1
推荐指数
1
解决办法
127
查看次数

REQUEST 调度的缓存未命中

我目前正在使用 Spring boot 更新版本 3.2.0 并在运行应用程序后实现了SecurityFilterChain我收到此消息:

2023-12-11T12:08:04.541+06:00  WARN 28000 --- [nio-8080-exec-1] o.s.w.s.h.HandlerMappingIntrospector     : Cache miss for REQUEST dispatch to '/' (previous null). Performing CorsConfiguration lookup. This is logged once only at WARN level, and every time at TRACE.
2023-12-11T12:08:04.550+06:00  WARN 28000 --- [nio-8080-exec-1] o.s.w.s.h.HandlerMappingIntrospector     : Cache miss for REQUEST dispatch to '/' (previous null). Performing MatchableHandlerMapping lookup. This is logged once only at WARN level, and every time at TRACE.
Run Code Online (Sandbox Code Playgroud)

SecurityFilterChain的代码:

@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception …
Run Code Online (Sandbox Code Playgroud)

java warnings spring-security spring-boot

5
推荐指数
1
解决办法
9170
查看次数

Android Compose 预览“渲染问题”,API 34 和 Compose UI 1.5.0

我最近使用 Compose 启动了一个新应用程序。我安装了 AS Hedgehog 2023.1.1。我正在使用 API 34,但在撰写预览中出现错误。“渲染问题”伴随

Layout fidelity warning

The graphics preview in the layout editor may not be accurate: 
    - The current rendering only supports APIs up to 33. You may encounter crashes if using with higher APIs. To avoid, you can set a lower API for your preview.
Run Code Online (Sandbox Code Playgroud)

如何为预览设置较低的 API?

谷歌搜索我只找到告诉我降低整个应用程序的 API 级别的结果,或者 2 年前的答案指出使用非常旧的 compose 版本。

android android-studio android-jetpack-compose

12
推荐指数
1
解决办法
3214
查看次数

带有 GET 的 apache httpclient5 代理无效

我迁移到 spring boot 3 和 java 21。由于我要进行补丁休息调用,因此我需要依赖项 org.apache.httpcomponents.client5:httpclient5:5.2.2。

但有了这种依赖性,如果将 org.springframework.web.client.RestTemplate 与 RequestEntity.get 一起使用,我会得到“java.lang.IllegalArgumentException:无效代理”。

在相同的设置下,补丁调用工作得很好。

  • 春季3.1.6
  • 爪哇21

有谁知道为什么会发生这种情况?我没有代理。我必须定义默认代理吗?

不幸的是,对于此链接:https://github.com/apache/httpcomponents-client/tree/5.1.x/httpclient5/src/test/java/org/apache/hc/client5/http/examples/ClientConfiguration.java 我得到 404。:-(

我尝试仅使用 apache 依赖项而不使用 Resttemplate 并得到相同的异常。

HttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet(uri);
httpGet.setHeader(HttpHeaders.AUTHORIZATION, token);
httpGet.setHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE);
Run Code Online (Sandbox Code Playgroud)

apache-httpclient-5.x spring-resttemplate java-21 spring-boot-3

6
推荐指数
1
解决办法
451
查看次数

我应该在 C# 12 中为主构造函数参数创建私有属性吗?

我正在使用 C# 12。在 C# 12 中我可以使用主构造函数:

实施1:

public class Calculation(int a,int b)
{
  public int Addition() => a + b;
  public int Subtraction() => a - b;
}
Run Code Online (Sandbox Code Playgroud)

实施2:

public class Calculation(int a,int b)
{
 private int _a { get; init; } = a;
 private int _b { get; init; } = b;
 public int Addition() => _a + _b;
 public int Subtraction() => _a - _b;
}
Run Code Online (Sandbox Code Playgroud)

当我像这样调用这个方法时:

console.WriteLine(new Calculation(10,25).Addition());
Run Code Online (Sandbox Code Playgroud)

两种实现都工作正常,所以我想知道使用较长的实现 2 相对于较短的实现 1 是否有任何优势。

c# primary-constructor .net-8.0 c#-12.0

10
推荐指数
2
解决办法
1548
查看次数

将数组插入数组

为了制作井字棋游戏,我决定最佳解决方案是创建数组的数组。我找到了仅适用于 C# 和 C++ 的解决方案,并且我不确定 C 中是否存在此选项。我想知道是否可以使用一些可用于 C 的库来创建数组的数组。

我试图执行的代码:

char first_row[] = {' ', ' ', ' '};
char second_row[] = {' ', ' ', ' '};
char third_row[] = {' ', ' ', ' '};
char rows[] = {first_row, second_row, third_row};
Run Code Online (Sandbox Code Playgroud)

我还想知道如何访问数组内的数组。我自己是一名Python专家,我发现这个功能的缺失完全让我大吃一惊。

upd:我发现信息表明它在C99中是可能的,但是没有描述如何制作它。

c arrays

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

在 Alexandria 64 位中调用 OpenSCManager 进行范围检查

我们最近从 Delphi Berlin 更新到 Alexandria 11.2,并遇到了问题。我们的应用程序之一针对 64 位平台。当它连接查询 Windows 服务时,它会抛出范围检查错误。当以 32 位为目标时,它不会执行此操作;柏林/64 位也没有发生这种情况。我比较了两种环境之间的 64 位编译选项,没有发现任何差异。

function TForm1.ConnectToServices(const AServiceName: String; const AMachineName: String): Integer;
begin
  Result := -1;
  try
    if AMachineName = EmptyStr then
      // Error happens here
      Result := OpenSCManager(nil, nil, SC_MANAGER_CONNECT)
    else
      // and here.
      Result := OpenSCManager(PChar(AMachineName), nil, SC_MANAGER_CONNECT);
  except
    // Get last error return 0, but ignoring the above error causes problems downstream
    ShowMessage(SysErrorMessage(GetLastError));
  end;
end;
Run Code Online (Sandbox Code Playgroud)

我真的不知道是什么原因造成的以及如何解决它。

设置 64 位编译器选项以匹配 Berlin 的编译器选项,其中 dll 调用成功且没有问题。

delphi 64-bit winapi range-checking delphi-11-alexandria

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