小编Spe*_*r H的帖子

如何在 Rust 中比较 Enum 实例

嘿,我正在学习 Rust,并试图找出为什么我不能直接比较一个非常简单的枚举的两个实例,我尝试使用matches!(不起作用)和#[derive(Eq)](只是将问题转发给impl

这是演示我的问题的片段及其输出。

#[derive(Debug)]
pub enum MyEnum {
    Enum1,
    Enum2,
    Enum3
}

#[derive(Debug)]
pub enum ThingEnum {
    NoOp,
    Enum(MyEnum)
}

pub fn test_enum_equate() {
    let mut enum1 = Vec::new();
    enum1.push(MyEnum::Enum1);
    enum1.push(MyEnum::Enum2);
    enum1.push(MyEnum::Enum3);

    let mut expr = vec![
        ThingEnum::NoOp,
        ThingEnum::Enum(MyEnum::Enum1),
        ThingEnum::Enum(MyEnum::Enum2),
        ThingEnum::NoOp,
        ThingEnum::Enum(MyEnum::Enum3)
    ];

    for myenum in enum1.iter() {
        for entry in expr.iter() {
            match entry {
                ThingEnum::NoOp => continue,
                ThingEnum::Enum(en) => {
                    // Check if they are the same
                    println!("matches!({:?}, {:?}) = {}",
                        myenum, en, …
Run Code Online (Sandbox Code Playgroud)

enums equality rust

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

项目欧拉#2无限?

我试图解决欧拉项目#2,我不断收到答案为"无限"或"南"(非数字),我试图改变号码的类型int(最初Double),但没有任何修复只是给了我的答案是"-1833689714"

public class Pro {
    static int g = 1;
    static int n, f = 0;
    public static void main(String args[]) {
        for (int i = 0; i <= 4000000; i++) {
            f = f + g;
            g = f - g;
            if (f % 2 == 0) {
                n += f;
            }
        }
        System.out.println("Answer: " + n);
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是:

Fibonacci序列中的每个新术语都是通过添加前两个术语生成的.从1和2开始,前10个术语将是:

1,2,3,5,8,13,21,34,55,89 ......

通过考虑Fibonacci序列中的值不超过四百万的项,找到偶数项的总和.

java fibonacci

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

Java JCE无法在jarsplice创建的jar中验证提供者BC

我正在开发一款游戏,我正在使用Slick2D库.我也使用bouncycastle进行加密.然后我使用jarsplice将所有内容打包在一个漂亮的可执行文件中.它运行正常,直到它需要加密某些东西.它给了我一个java.lang.SecurityException: JCE cannot authenticate the provider BCAnd我正在使用一个签名的jar文件(http://www.bouncycastle.org/download/bcprov-jdk15on-150.jar)

这是堆栈跟踪

 java.lang.SecurityException: JCE cannot authenticate the provider BC
    at javax.crypto.Cipher.getInstance(Cipher.java:642)
    at javax.crypto.Cipher.getInstance(Cipher.java:580)
    at net.matrixstudios.zenerith.networking.ZenerithLogin.encryptLogin(ZenerithLogin.java:159)
    at net.matrixstudios.zenerith.networking.ZenerithLogin.<init>(ZenerithLogin.java:112)
    at net.matrixstudios.zenerith.MultiplayerMenu$1.performAction(MultiplayerMenu.java:90)
    at net.matrixstudios.zenerith.gui.menu.MenuGameState.clickButton(MenuGameState.java:83)
    at net.matrixstudios.zenerith.gui.menu.MenuGameState.checkForButtonClicks(MenuGameState.java:75)
    at net.matrixstudios.zenerith.gui.menu.MenuGameState.update(MenuGameState.java:51)
    at net.matrixstudios.zenerith.gui.menu.AbstractGameState.update(AbstractGameState.java:47)
    at org.newdawn.slick.state.StateBasedGame.update(StateBasedGame.java:266)
    at org.newdawn.slick.GameContainer.updateAndRender(GameContainer.java:663)
    at org.newdawn.slick.AppGameContainer.gameLoop(AppGameContainer.java:411)
    at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:321)
    at net.matrixstudios.zenerith.gui.Window.<init>(Window.java:28)
    at net.matrixstudios.Main.main(Main.java:28)
Caused by: java.util.jar.JarException: file:/C:/Users/M4trixSh4d0w/Desktop/Zenerith_Alpha.0.2.1.5.jar has unsigned entries - org/bouncycastle/LICENSE.class
    at javax.crypto.JarVerifier.verifySingleJar(JarVerifier.java:462)
    at javax.crypto.JarVerifier.verifyJars(JarVerifier.java:322)
    at javax.crypto.JarVerifier.verify(JarVerifier.java:250)
    at javax.crypto.JceSecurity.verifyProviderJar(JceSecurity.java:161)
    at javax.crypto.JceSecurity.getVerificationResult(JceSecurity.java:187)
    at javax.crypto.Cipher.getInstance(Cipher.java:638)
    ... 14 more
Run Code Online (Sandbox Code Playgroud)

那么如何验证要运行的jar文件呢?这是一个独立的可执行jar文件.

java securityexception

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

使用C#连接到Visual Studio 2015中的Team Foundation Server?

我正在尝试将一些C#代码连接到Microsoft TeamFoundation服务器,但我似乎无法找到Visual Studio 2015的任何文档(典型的Microsoft?)但我确实找到了适用于Microsoft Visual Studio 2013的内容.(https:// msdn.microsoft.com/en-us/library/bb286958)

事实证明,他们通过删除Microsoft.TeamFoundation.Framework导入打破了旧的方式(2013年方式),所以他们的示例代码,使用Microsoft.TeamFoundation.Framework.Client;将无法正常工作:(

现在他们仍然需要一些旧的库,比如在C:\ Program Files(x86)\ Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer中找到的Microsoft.TeamFoundation.Client

[请参阅我在哪里可以找到Visual Studio 2015中的Microsoft.TeamFoundation.Build.Client?]

他们有一个来自'NuGet'的"2015 .NET库下载"的东西(在上面的链接中提到)但是......它不包含所需的库,Microsoft.TeamFoundation.Framework!


...所以我的问题是,是否有人有任何关于"新的和改进的"连接方式的信息?我会尝试将项目创建为Team项目,看看它是否内置了某种设置,但遗憾的是我认为这是不可能的,因为我无权在Visual Studio中创建新的团队项目.

.net c# visual-studio visual-studio-2015

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

Java JScrollPane更新映像

我正在制作一个具有滚动图像的程序,如果按下按钮,我无法弄清楚如何更新图像(例如:向图像添加绿色椭圆.)它已经绘制了将图像放入JScrollPane并可以滚动,但是当您单击按钮时它不会刷新图像.(代码中的更多细节)这是代码:

public class PegMaster extends JPanel implements ActionListener {

    //Note: not complete code
    public PegBox[] pegbox = new PegBox[9];

    public static Dimension size = new Dimension(520, 500);

    public BufferedImage canvas;
    public Graphics2D g2d;
    public JScrollPane scroller;
    JPanel panel;
    private Canvas window;

    JScrollPane pictureScrollPane;

    public PegMaster() {
        JButton button = new JButton("test");
        button.addActionListener(this);
        add(button);

        canvas = new BufferedImage((int)size.getWidth()-30, 75 * GUESSES, BufferedImage.TYPE_INT_RGB);
        g2d = canvas.createGraphics();
        for(int i = 0;i<=pegbox.length-1;i++) {
           pegbox[i] = new PegBox(i, g2d);
        }
        window = new Canvas(new ImageIcon(toImage(canvas)), …
Run Code Online (Sandbox Code Playgroud)

java swing image paint jscrollpane

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