小编D. *_*aro的帖子

所有原始类型都实现了复制特征吗?

Rust中的所有原始类型都实现了Copy特征吗?

知道这一点很有意思,因为这些知识肯定是彻底学习新编程语言的一部分.

rust

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

什么时候需要使用生命周期?

我已经阅读了生命周期并了解每个变量绑定都有生命周期。然而,我似乎想不出什么时候你实际上需要使用它们,因为编译器在必要时在推断它们方面做了很多工作。

《Rust》这本书,我读过。我想要一个简单易懂的例子,即使对于像我这样的人来说也是如此!

rust

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

多个链接的GPRBuild项目中的相同基础包

使用GPRBuild,我创建了一个名为的库项目Lib.所有包都Lib驻留在包中Base,我将其用作基本包:具有基本包Base.例如,如果我要Apple在我创建的任何库或应用程序中创建包,它将被写为package Base.Apple.

这个问题,使用GPRBuild.为了把东西放在Base包装下面,它需要存在.Lib因此,在GPRBuild库项目中,我有一个base.ads表示包存在的文件Base.然后在我正在使用该库的项目中Lib,让我们将其称为Proj,我也将所有包放在Base包(包内Proj)中.为了做到这一点,我们需要使用包定义来创建一个base.ads文件.ProjBase

我们来看看gpr项目文件:

with "lib.gpr";

project Proj is
   -- ...
end Proj;
Run Code Online (Sandbox Code Playgroud)

通过这个出现了问题; 我们突然有两个文件,都叫做base.ads,都定义了Base包,每个项目一个:库项目Lib,以及Proj使用库的项目Lib.由于我们有两个包(和它们的文件)命名相同的东西,我们得到这个错误,这在编译时完全不奇怪:

unit "base" cannot belong to several projects

问题是:有没有办法在多个项目中拥有相同的基础包?然后通过import(with)链接在一起的项目.如果它应该被证明是可能的,它怎么能实现呢?

ada gnat gprbuild

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

什么和*结合在一起做Rust?

我正在阅读关于Strings 的书籍部分,并发现他们正在&*结合使用来转换一段文字.它的内容如下:

use std::net::TcpStream;

TcpStream::connect("192.168.0.1:3000"); // Parameter is of type &str.

let addr_string = "192.168.0.1:3000".to_string();
TcpStream::connect(&*addr_string); // Convert `addr_string` to &str.
Run Code Online (Sandbox Code Playgroud)

换句话说,他们说他们正在将a转换String成a &str.但为什么使用上述两种标志进行转换呢?如果不使用其他方法吗?&我们是不是意味着它的参考,然后使用它*来取消引用它?

rust

5
推荐指数
2
解决办法
184
查看次数

阻止 AltGr 触发菜单栏项目?

介绍

每当我按下AltGr 键时,我MenuItem里面的第一个MenuBar就会收到焦点。这绝不是一种想要的行为——尽管它看起来好像是它本身提供的默认行为。MenuBar

这有点烦人,因为我使用的是瑞典语键盘——这意味着使用该键会调用[]和。{}AltGr

问题

我想,而首先删除功能MenuItemMenuBar顺利通过按下激活AltGr键盘上。

研究

像往常一样,我一直在浏览Stackoverflow,希望能找到答案——但徒劳无功。老实说,由于大多数Stackoverflow实际上并没有使用瑞典语键盘布局,因此之前没有人遇到过这个问题,这并不奇怪。

而且

也许有人在某处看到过这样的帖子——在这种情况下,把它标记为重复——在任何其他情况下,要么指出我和任何可能在正确方向上遇到这个问题的人,要么简单地回答这个问题有点肤浅的例子。

javafx

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

在 Pixmap 上使用“drawPixel”时的透明度?

背景

\n

我正在创建一个应用程序,在其中手动布置纹理图集。重点是图像本身\xe2\x80\x99不应该是透明的\xe2\x80\x94它具有一致的背景颜色,然后应该在代码中将其删除。

\n

我\xe2\x80\x99m 遇到的问题是我可以\xe2\x80\x99t 似乎能够从I\xe2\x80\x99m 工作中删除像素\xe2\x80\x94使它们透明\xe2\x80\ Pixmapx94在。I\xe2\x80\x99ve 确保用于RGBA_8888我的Pixmap\xe2\x80\x99s Format,它肯定支持透明度。

\n

问题

\n

Here\xe2\x80\x99s 是我遇到问题的代码片段:

\n
pixmap.drawPixel(x, y, 0x00000000);\n
Run Code Online (Sandbox Code Playgroud)\n

很明显,0x00000000即使从十六进制转换为基数十\xe2\x80\x94,也将为零\xe2\x80\x94,说实话,它\xe2\x80\x99是相同的数字!

\n

根据我的观察,我\xe2\x80\x99注意到该drawPixel方法在当前像素上绘制一个像素。我想要的是让它变得透明。使用上述代码段,它将透明度绘制到不透明的\xe2\x80\x99t透明\xe2\x80\x94的东西上,最终什么也没改变。就好像你什么都不添加到某物上,某物仍然存在。

\n

研究

\n

像往常一样,我自己做了一些研究。在Stackoverflow上我还没有\xe2\x80\x99t 找到任何有用的东西。我唯一知道的是上面提到的事情,我\xe2\x80\x99ve通过观察Pixmap及其drawPixel方法设法找到了答案。

\n

而且

\n

也许有人可以指出正确的方向,告诉我如何制作透明像素Pixmap

\n

java libgdx

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

从内部返回for循环会导致类型不匹配

我试图for从位于implstruct 的函数中返回位于循环内的函数指针。

fn locate_func(&self, string: &str) -> fn() -> bool {
    let mut func;

    for alt in &self.alts {
        return alt.func;
    }
}
Run Code Online (Sandbox Code Playgroud)

将来iffor循环中会有一条语句,但是当我正在测试时,它看起来很普通,有些不合逻辑。

我认为上面的代码应该返回的指针alt.func(),该指针显然是一个指针,因为它告诉我,应该删除该行的return和分号。

fn locate_func(&self, string: &str) -> fn() -> bool {
    let mut func;

    for alt in &self.alts {
        return alt.func;
    }
}
Run Code Online (Sandbox Code Playgroud)

以上是运行时引起的错误locate_func()。由于上述代码无法正常工作,我显然缺少一些东西。有什么提示吗?

type-mismatch rust

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

是否有组织Rust项目的传统方式?

是否有组织Rust项目的标准时尚?我已经使用C系列编程语言超过九年了,但Rust在某些方面似乎有所不同.

是否应该以类似于C语言的方式组织他们的项目,尤其是面向对象的语言?

project
|->src
   |->main.rs
   |->structs.rs
Run Code Online (Sandbox Code Playgroud)

或者也许就是这样?

project
|->src
   |->main.rs
   |->struct0.rs
   |->struct1.rs
   |->struct2.rs
   |->struct3.rs
Run Code Online (Sandbox Code Playgroud)

也就是说,每个结构一个文件?

或者每次创建新的二进制项目时,是否会创建新的二进制项目?我目前正在使用Cargo来生成我的项目,但公平地说不太了解它.最后,当我阅读完整的Cargo文档时,会有一点,尽管我希望在此之前更多地了解Rust.

请在树和文本中解释,以及可能的一些代码.

rust

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

所有泛型类型都实现 Copy trait 吗?

Rust 中的所有泛型类型都实现了Copytrait 吗?为了扩展这一点,除了泛型类型之外,标准库中是否有很多类型实现了这个特性?

rust

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

比较标记类型

在Java中,人们会使用它instanceof来检查对象是否与另一个对象属于同一类型(或类范围类型).例如,如果我们有类Peach和一个对象peach,它将通过以下内容:

if (peach instanceof Peach)
    System.out.println("peach is of type Peach!");
Run Code Online (Sandbox Code Playgroud)

...将上述语句执行到终端.

从我记忆中来看,在Ada中,有一些东西是这样的is in,因为某些对象在某个类的范围内.但是,出于这个问题的目的,我似乎无法找到有关该主题的信息.上次我使用它is in,我无法让它工作.因此,我决定在这里提出问题.

关于如何以类似于Java的方式完成标记类型的比较的任何指针instanceof都将非常有用!

ada gnat

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

标签 统计

rust ×6

ada ×2

gnat ×2

gprbuild ×1

java ×1

javafx ×1

libgdx ×1

type-mismatch ×1