小编Neo*_*Neo的帖子

是否可以在Rust中创建一个私有变量?

我正在尝试生成素数.代码需要存储所有生成的素数(以生成下一个),有一些私有函数来帮助和一个公共函数(generate_next_prime).

在Java或C++中,我会编写一个PrimesGen类,但在Rust中,结构中不能有私有变量.在Python中我可能会编写一个PrimesGen模块,但在Rust模块中不能有变量.

此代码编译并运行:

struct PrimesGen {
    primes_so_far: Vec<i32>,
    next_candidate: i32,
}

impl PrimesGen {
    pub fn new() -> PrimesGen {
        PrimesGen {
            primes_so_far: vec![],
            next_candidate: 2,
        }
    }
}

fn main() {
    let pg: PrimesGen = PrimesGen::new();
    println!("{}", pg.next_candidate);
}
Run Code Online (Sandbox Code Playgroud)

那我该怎么办?

private rust

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

如何使用Cargo/Rust在模块中包含同一目录中的文件?

我有一个货物项目包括三个文件在同一目录下:main.rs,mod1.rsmod2.rs.

我想从导入功能mod2.rs,以mod1.rs同样的方式,我会从导入功能mod1.rsmain.rs.
我已经阅读了所需的文件结构但我没有得到它 - 命名所有导入的文件mod将导致编辑器中的轻微混淆,这也只是使项目层次结构复杂化.

有没有像在Python或C++中那样独立于目录结构导入/包含文件的方法?

main.rs:

mod mod1; // Works

fn main() {
    println!("Hello, world!");
    mod1::mod1fn();
}
Run Code Online (Sandbox Code Playgroud)

mod1.rs:

mod mod2; // Fails

pub fn mod1fn() {
    println!("1");
    mod2::mod2fn();
}
Run Code Online (Sandbox Code Playgroud)

mod2.rs:

pub fn mod2fn() {
    println!("2");
}
Run Code Online (Sandbox Code Playgroud)

建立结果:

error: cannot declare a new module at this location
 --> src\mod1.rs:1:5
  |
1 | mod mod2;
  |     ^^^^
  |
note: maybe move this module `src` to …
Run Code Online (Sandbox Code Playgroud)

import module rust rust-cargo

7
推荐指数
3
解决办法
5028
查看次数

使用 TypeScript 时如何在 React Native 中使用 createStackNavigator(React Navigation)?

我正在使用 React Native 和 TypeScript 编写应用程序,并使用 React Navigation 进行路由。
在我下载的示例项目中,它们用于StackNavigator({...})创建导航器,但是当我这样做时,npm start我看到一条警告,指出该项目StackNavigator已弃用,我应该createStackNavigator改用。createStackNavigator也是我在在线教程中看到的功能。

问题是使用时createStackNavigator出现错误:

[ts] Module '".../.../..."' has no exported member 'createStackNavigator'.
Run Code Online (Sandbox Code Playgroud)

我查了一下,index.d.ts路径中的文件确实没有这样的成员。我尝试过,npm install @types/react-navigation@latest但这也无济于事。

我该怎么做才能使用createStackNavigator?还是我应该求助于已弃用的StackNavigator

typescript react-native react-navigation

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

理解StatefulWidget在Flutter中的使用

我刚刚开始摆弄 Flutter,我无法理解StatefulWidget. 我在教程等中看到的所有这些小部件都可以实例化 aState<MyWidget>并让它完成所有工作。
例如,从这个(官方)教程:

class RandomWords extends StatefulWidget {
  @override
  createState() => new RandomWordsState();
}
class RandomWordsState extends State<RandomWords> {
  ...
}
Run Code Online (Sandbox Code Playgroud)

我想知道的是为什么要这样构建以及外部类的用途是什么(在我的示例中RandomWords)。

提前致谢。

dart flutter statefulwidget

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

在 trait 对象中使用泛型类型参数的引用问题是什么?

我正在阅读Trait Objects 需要对象安全,但我不明白泛型类型参数的问题。

使用 trait 时用具体类型参数填充的泛型类型参数也是如此:具体类型成为实现 trait 的类型的一部分。当通过使用 trait 对象忘记类型时,无法知道用什么类型填充泛型类型参数。

我正在尝试编写一个示例,但我无法理解。什么是泛型类型参数?

我试图从一个参数化的 trait 中创建一个 trait 对象,但是一旦参数被赋予了一个具体的值,它就可以正常工作:

trait Creator<T> {
    fn create(&self) -> T;
}

struct CreationHouse {
    creators: Vec<Box<dyn Creator<u32>>>
}

struct NumCreator { seed: u32 }

impl Creator<u32> for NumCreator {
    fn create(&self) -> u32 {
        return self.seed;
    }
}

fn main() {
    let ch = CreationHouse{
        creators: vec![Box::new(NumCreator{seed: 3})]
    };
}
Run Code Online (Sandbox Code Playgroud)

(编译良好,除了“未使用”警告)

我不明白的是“使用特征时用具体类型参数填充的泛型类型参数”是什么意思,以及泛型类型怎么会丢失(因为特征“携带”它们自己)。如果你能写一个段落中描述的案例的例子,我将不胜感激。

generics traits rust trait-objects

4
推荐指数
2
解决办法
990
查看次数

JUnit with Kotlin - 这个类没有构造函数

我正在尝试在我的Kotlin应用程序中使用JUnit4实现测试(kotlin.test在我的Kotlin运行时库中似乎不存在,我现在不知道如何获得它).
但是,我只是通过使用Test注释遇到错误.
那是我的代码:

import junit.framework.*

class IntTest {
    @Test    <------------- This line
    fun test1() {

    }
}
Run Code Online (Sandbox Code Playgroud)

在指定的行上,Eclipse给出了一条错误消息:"This class does not have a constructor".
我不明白是什么问题.哪个类没有构造函数,为什么它有一个?

java testing junit kotlin

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

如何安全地更改 Flutter Android Studio 项目中的“lib”目录名称?

我在 Android Studio 中创建了一个 Flutter 应用程序,我想将“lib”目录(Dart 源文件所在的位置)的名称更改为“src”。

但是,当我这样做时,导入“package:/main.dart”失败。我怎样才能改变这一点?

我更改了 .iml 文件中的路径,项目编译并运行,但此测试文件仍然显示错误。

dart android-studio flutter

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

未解决的参考:使用Kotlin在Eclipse中使用pow

我正试图在Kotlin写一些小东西,但我遇到了找到数字的二次幂的问题Double.

根据这个,Double应该实现一个pow接收另一个的函数Double,但是当我尝试使用这个方法时我得到Unresolved reference: pow了一个错误.

这是我的示例代码:

fun main()
{
    val d: Double = 1.1;
    val d2: Double = d.pow(2.0); // Here's the error, on the token 'pow'.
    println(d2);
}
Run Code Online (Sandbox Code Playgroud)

我找不到任何理由.此功能仅来自Kotlin 1.2,但Eclipse安装详细信息中的Kotlin记录说Kotlin language support for Kotlin 1.2.50.

我创建的项目,我更新了科特林插件之前,它是可能的项目,以科特林版本创建的1.2之前,但我不能在设置中找到的任何位置改变配置科特林版本,所以我想使用的版本是一个即安装1.2 .50

顺便说一句,Eclipse提供的错误图标是灯泡1的错误,表明存在可用的解决方案,但是当我点击图标时没有出现,这很奇怪.

如果有人能提出任何理由,那就太好了.
提前致谢.

eclipse math pow kotlin

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