小编Jay*_*Lee的帖子

在 SwiftUI 中的导航栏标题下方添加附件视图

I\xe2\x80\x99m 尝试添加嵌入导航栏中的附件视图标题下方导航栏中的附件视图,该视图可以在默认的 iOS 日历应用程序中看到(\xe2\x80\x9cs mtwtfs\xe2\x80\x9d 行)或GitHub 移动应用程序:

\n

生长激素1生长激素1

\n

我\xe2\x80\x99d 喜欢它与 GH mobile 等大型标题样式导航栏一起使用。

\n

LazyVStack\xe2\x80\x99spinnedView带有节标题几乎可以工作,但我可以 \xe2\x80\x99t 获取背景颜色以使其与导航栏无缝连接,即使使用ultraThinMaterial. 它还在固定视图和栏之间留下了分隔线。

\n

有没有办法实现这种布局?\n欢迎使用 SwiftUI、SwiftUI+ Introspect和 UIKit 中的解决方案!

\n

uinavigationbar ios swift swiftui swiftui-navigationview

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

C++17和C++20在模板友元函数中一元和二元运算符的区别

我在 C++20 中有以下 MWE clang++ -std=c++2a,其中我定义了类内一元运算-符和friend-ed 二元-运算符:

template<typename T>
class vec;

template<typename T>
vec<T> operator-(const vec<T>&, const vec<T>&);

template<typename T>
class vec {
public:
    vec() {}
    vec operator-() const { return vec(); }
    friend vec operator-<>(const vec&, const vec&);
};

template<typename T>
vec<T> operator-(const vec<T>& lhs, const vec<T>& rhs) { return vec<T>(); }

int main()
{
    vec<int> v;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是,这会导致 C++17 中出现以下错误:

main.cpp:12:16: error: friends can only be classes or functions …
Run Code Online (Sandbox Code Playgroud)

c++ templates friend c++17 c++20

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

捕获 Kotlin 异步协程中的异常并停止传播

我想捕获异步协程引发的异常。下面的代码演示了一个问题:

import kotlinx.coroutines.*

fun main() = runBlocking<Unit> {
    try {
        println(failedConcurrentSum())
    } catch (e: ArithmeticException) {
        println("Computation failed with ArithmeticException")
    }
}

suspend fun failedConcurrentSum() = coroutineScope {
    try {
        val one = async {
            try {
                delay(1000L)
                42
            } finally {
                println("First child was cancelled")
            }
        }

        val two = async<Int> {
            println("Second child throws an exception")
            throw ArithmeticException()
        }

        one.await() + two.await()
    } catch (e: ArithmeticException) {
        println("Using a default value...")
        0
    }
}
Run Code Online (Sandbox Code Playgroud)

这打印:

Second child throws …
Run Code Online (Sandbox Code Playgroud)

asynchronous kotlin kotlin-coroutines

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

使用 Rust-analyzer 处理单个文件 Rust

我正在尝试使 rust-analyzer(使用 Neovim)使用单个 Rust 文件。我知道使用 Cargo 应该是默认设置,但我正在尝试解决来自项目 euler 的问题,其中为每个问题制作一个项目似乎有点矫枉过正。此外,我用各种语言解决问题,所以我想让每个代码都独立。

但是,使用coc-rust-analyzer,它说:

[coc.nvim] rust-analyzer failed to discover workspace, no Cargo.toml found, dirs searched: /Users/jay/some-dir
Run Code Online (Sandbox Code Playgroud)

我只想用这个文件运行 rust-analyzer。我该怎么办?

————

更新:我刚开始使用 Rust,我使用 Python、OCaml、C++ 解决以前的问题。我用于rustc一个简单的问题。

像 OCaml 这样的语言使用ocamlfind&提供了一个(详细的)解决方案 ocamlopt,并且要使用merlin这是一个用于 vim 和 emacs 的工具,我只需要一个顶级.merlin文件,例如

PKG core stdio ppx_deriving.std ppx_variants_conv
Run Code Online (Sandbox Code Playgroud)

列出了我需要使用的所有软件包。我可以使用dune,它有点像货物的构建系统部分。

我发现rustc可以链接外部板条箱,例如rustc executable.rs --extern rary=library.rlib && ./executable. 我承认这可能比基于 Cargo 的解决方案更复杂,但仍然让我怀疑 rust-analyzer 是否只能用于基于 Cargo 的项目。

vim rust rust-cargo language-server-protocol coc.nvim

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