注意:这是一个类似但不重复的问题How to use sqlx to query mysql IN a slice? 。我要的是Rust 的。
这就是我尝试做的事情。
let v = vec![..];
sqlx::query("SELECT something FROM table WHERE column IN (?)").bind(v)
...
Run Code Online (Sandbox Code Playgroud)
然后我收到以下错误
the trait bound `std::vec::Vec<u64>: sqlx::Encode<'_, _>` is not satisfied
Run Code Online (Sandbox Code Playgroud) 我写了一个基准,计算前10000个素数的总和,并将Rust与TypeScript进行比较.NodeJS上的TypeScript是Rust,Scala和Java中最快的.尽管程序故意使用功能样式来测试素数,旨在展示Rust的零成本抽象的优势,但NodeJS击败了它们.
NodeJS(基于动态类型的运行时)如何如此之快?
Rust代码
fn sum_primes(n: usize) -> u64 {
let mut primes = Vec::new();
let mut current: u64 = 2;
let mut sum: u64 = 0;
while primes.len() < n {
if primes.iter().all(|p| current % p != 0) {
sum += current;
primes.push(current);
}
current += 1;
}
sum
}
Run Code Online (Sandbox Code Playgroud)
TypeScript代码
function sumPrimes(n) {
let primes = [];
let current = 2;
let sum = 0;
while (primes.length < n) {
if (primes.every(p => current % p != 0)) { …Run Code Online (Sandbox Code Playgroud) 在 gradle 脚本中,我可以sourceSets.main.runtimeClasspath获取运行时类路径。但在 kts 脚本中它抱怨
Unresolved reference. None of the following candidates is applicable because of receiver type mismatch:
public val NamedDomainObjectContainer<Configuration>.runtimeClasspath: NamedDomainObjectProvider<Configuration> defined in org.gradle.kotlin.dsl
Run Code Online (Sandbox Code Playgroud)
我怎样才能在kts脚本中做到这一点?