小编Fin*_*ber的帖子

如何修复解析 go.mod 模块将其路径声明为“x”但需要为“y”

我正在开发一个依赖于original-project. 我现在想通过修改original-project. 所以我克隆github.com/y/original-projectgithub.com/x/my-version并替换了所有出现的github.com/y/original-projectwith github.com/x/my-version(包括 in mod.go)。

但我不断收到此错误:

go: github.com/x/my-version@v0.5.2: parsing go.mod:
    module declares its path as: github.com/y/original-project
            but was required as: github.com/x/my-version
Run Code Online (Sandbox Code Playgroud)

即使我跑步go get -u -v -f allgithub.com/x/my-version

我可能做错了什么?

go

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

TypeScript 中带有泛型的条件类型

我想要实现的目标可以用代码最好地解释:

给定鞋子和服装类别:

class Shoe {
    constructor(public size: number){}
}
Run Code Online (Sandbox Code Playgroud)
class Dress {
    constructor(public style: string){}
}
Run Code Online (Sandbox Code Playgroud)

有一个只能容纳鞋子或连衣裙的通用盒子。不能同时包含两者:

class Box <T extends Shoe | Dress > {
}
Run Code Online (Sandbox Code Playgroud)

然后有一个实用程序类来处理移动鞋子:

class ShoeMover {
    constructor(public size: number[]){}
}
Run Code Online (Sandbox Code Playgroud)

另外,还有一个用于移动连衣裙的实用程序类:

class DressPacker {
    constructor(public style: string[]){}
}
Run Code Online (Sandbox Code Playgroud)

然后有一个通用的移动器,如果用Box<Shoe>or实例化,则Box<Dress>有一个mover使用 theShoeMover或 the 的方法DressPacker

class Move<B extends Box<Shoe> | Box<Dress>> {
    private box: B;
    constructor(toMove: B) {
        this.box = toMove;
    }
    public mover(tool: ShoeMover | DressPacker) { …
Run Code Online (Sandbox Code Playgroud)

generics typescript

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

如何使用 Axum 启用日志记录/跟踪?

我正在学习 Axum,我想将日志记录添加到我组装的服务中,但不幸的是我无法让它工作。

我已添加 tower-http 来使用TraceLayer并将其添加到我的应用程序中:

# Cargo.toml
[dependencies]
axum = "0.6.1"
tower-http = { version = "0.3.5", features = ["trace"] }
Run Code Online (Sandbox Code Playgroud)
use tower_http::trace::TraceLayer;

let app = Router::new()
    .route("/:name/path", axum::routing::get(handler))
    .layer(TraceLayer::new_for_http())
Run Code Online (Sandbox Code Playgroud)

但是当我启动应用程序并向端点发出请求时,没有记录任何内容。是否有我可能错过的配置步骤?

rust rust-tracing rust-axum

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

在 TypeScript 中使用 BigInt

我相信我现在应该能够在 TypeScript 中使用 BigInt ......但是更改一些代码库以使用它,我得到“找不到名称'BigInt'。(2304)”关于为什么我会收到此错误的任何想法?

$ cat test.ts 
let x = BigInt(123)
console.log(x.toString())

$ tsc test.ts 
test.ts:1:9 - error TS2304: Cannot find name 'BigInt'.

1 let x = BigInt(123)
          ~~~~~~


Found 1 error.
Run Code Online (Sandbox Code Playgroud)

现在如何在 TypeScript 中开始使用 BigInt?

typescript

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

使用 Reactor Netty HTTP Client 时如何获取 HTTP 响应正文和状态

我在这里使用 Reactor Netty HTTP 客户端作为独立依赖项,即不是通过,spring-webflux因为我不想拖入 Spring 相关依赖项

从文档中可以看出,可以发出返回的请求HttpClientResponse

import reactor.netty.http.client.HttpClient;
import reactor.netty.http.client.HttpClientResponse;

public class Application {

    public static void main(String[] args) {
        HttpClientResponse response =
                HttpClient.create()                   
                          .get()                      
                          .uri("http://example.com/") 
                          .response()                 
                          .block();
    }
}
Run Code Online (Sandbox Code Playgroud)

事情HttpClientResponse只包含标题和状态。从这里的 Java 文档可以看出

也可以从示例中消耗数据来做到这一点

import reactor.netty.http.client.HttpClient;

public class Application {

    public static void main(String[] args) {
        String response =
                HttpClient.create()
                          .get()
                          .uri("http://example.com/")
                          .responseContent() 
                          .aggregate()       
                          .asString()        
                          .block();
    }
}
Run Code Online (Sandbox Code Playgroud)

但这仅以字符串形式返回 http 实体数据。没有有关标头或状态代码的信息。

我现在遇到的问题是我需要发出请求并获得响应,该响应为我提供标头、状态等以及 http 响应正文。

我似乎无法找到如何。有什么想法吗?qw

reactor project-reactor reactor-netty

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

Rust 中带问号的等待(await?)是什么?

我读了关于 Rust 异步编程的书的这一部分https://rust-lang.github.io/async-book/03_async_await/01_chapter.html

我看到提到语法.await

然后我后来看到一个博客,其中reqwest用于获取网址。代码如下所示:

let resp200 = client.get("https://httpbin.org/ip")
    .header(CONTENT_TYPE, "application/json")
    .send()
    .await?
    .json::<GETAPIResponse>()
    .await?;
Run Code Online (Sandbox Code Playgroud)

我不明白.await?。我知道是提取案例或从带有错误的函数返回的?简写。Ok但据我所知,.await不会返回Result,所以怎么可能.await?

error-handling rust async-await

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

如何将 axum::extract::Query 和 axum::extract::State 与 Axum 一起使用?

我正在构建一个需要注入状态并且还需要提取查询参数的处理程序。

我一开始只提取状态并且有效。其代码如下所示:

    #[derive(ValueEnum, Clone, Debug, serde::Deserialze, serde::Serialize)]
    pub enum MyParams {
       Normal,
       Verbose,
    }

    #[derive(Debug)]
   pub struct MyState {
      port: u16,
   }
    
    pub async fn serve(self) {
        let port = self.port;
        let app = Router::new()
            .route("/path", axum::routing::get(path))
            .with_state(Arc::new(self));

        let addr = SocketAddr::from(([127, 0, 0, 1], port));
        axum::Server::bind(&addr)
            .serve(app.into_make_service())
            .await
            .unwrap();
    }

async fn path(State(middle_ware): State<Arc<MyState>>) -> impl IntoResponse {
    let result = middle_ware.process().await;
    (StatusCode::OK, Json(result))
}

Run Code Online (Sandbox Code Playgroud)

现在我想提取查询参数,所以我更新了代码如下:

async fn path(State(middle_ware): State<Arc<MyState>>, params: Query<MyParams>) -> impl IntoResponse {
    println!("{:?}", params);
    let …
Run Code Online (Sandbox Code Playgroud)

rust rust-axum

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

如何在 Rust 中使用 sqlx 构建安全的动态查询?

sqlx 有一个查询生成器。文档可以在这里查看

我看到它支持动态构建以下形式的查询:

SELECT * FROM users WHERE (id, username) IN ((1, "test_user_1"), (2, "test_user_2"))
Run Code Online (Sandbox Code Playgroud)

但我有兴趣构建更复杂的查询,例如

SELECT * from users where id = "id" AND username = "username" AND age > "10" AND age < "70" AND last_visited < 12324235435 AND last_visited > 214324324234234
Run Code Online (Sandbox Code Playgroud)

其中任何 where 子句都是可选的。所以以下也应该动态构建

SELECT * from users where id = "id" AND age > "10" AND last_visited < 12324235435
Run Code Online (Sandbox Code Playgroud)

除了必须自己手动连接 where 字符串之外,我似乎找不到使用 sqlx 执行此操作的方法

rust rust-sqlx

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

有关Java中的线程和回调的问题

我正在阅读Elliotte撰写的Java网络编程,在“线程”一章中,他给出了这段代码,作为可以在不同线程中运行的计算的示例。

import java.io.*;
import java.security.*;
public class ReturnDigest extends Thread {
private String filename;
private byte[] digest;

public ReturnDigest(String filename) {
  this.filename = filename;
}

@Override
public void run() {
try {
   FileInputStream in = new FileInputStream(filename);
   MessageDigest sha = MessageDigest.getInstance("SHA-256");
   DigestInputStream din = new DigestInputStream(in, sha);
   while (din.read() != -1) ; // read entire file
   din.close();
   digest = sha.digest();
 } catch (IOException ex) {
   System.err.println(ex);
 } catch (NoSuchAlgorithmException ex) {
   System.err.println(ex);
 }
}

public byte[] getDigest() { …
Run Code Online (Sandbox Code Playgroud)

java multithreading

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

如何在没有 Spring Boot 的情况下使用 Spring WebClient

我对能够发出 HTTP 请求的需求非常有限。我看到 WebClient 是 RestTemplate 的新替代品。但是好像不能用WebClient,不拖整个spring boot;这不是我想做的。有没有办法在没有 Spring Boot 的情况下使用 WebClient?

spring spring-boot spring-webclient

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