小编Nav*_*ron的帖子

如何在没有“use”关键字的情况下使用 Rust 中的方法?

我有 Java 背景,正在学习 Rust。在Java中,我通常会import java.util.ArrayList;. 据我了解,这是一种方便,可以防止需要java.util.在每次出现ArrayList.

考虑以下 Rust:

use std::io;
use std::io::Write;

fn main() {
    print!("Hello World!");
    // Let's flush the Buffer
    io::stdout().flush().expect("Oh No!");
}
Run Code Online (Sandbox Code Playgroud)

如果第一个use被删除,io则不再指定。我们可以通过添加std::before来解决这个问题io

该程序现在如下所示:

use std::io::Write;

fn main() {
    print!("Hello World!");
    // Let's flush the Buffer
    std::io::stdout().flush().expect("Oh No!");
}
Run Code Online (Sandbox Code Playgroud)

引起我兴趣的是第二个use- 需要flush在标准输出上使用该方法。这让我的 Java 类比非常不愉快——我期望flush成为“stdout事物”的一部分,如果我拥有该事物,我就可以使用这些方法——但这里的情况显然不是这样。

是否可以在没有第二个的情况下编写上面的程序use?如果是这样,完整指定的语法是什么flush

到底是怎么回事?


解决方案

通过下面的一些有用的评论解决了。链接的问题虽然不是同一个问题,但确实有相似的答案。

有问题的行:

std::io::stdout().flush().expect("Oh …

syntax rust

5
推荐指数
0
解决办法
322
查看次数

如何编辑BufferedImage中的像素?

在搜寻了数天的互联网之后,我发现了一个似乎可以解决我的目标的问题。(我正在尝试绘制/编辑图像中的单个像素,然后进行渲染。)在上述问题中,提问者要求提供Black BufferedImage的代码。顶部的Answer提供了该代码,并且看起来很漂亮,直到您尝试将其更改为黑色以外的其他颜色为止。这是代码:

package myProjectPackage;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferStrategy;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferInt;
import javax.swing.*;

public class Copypasta {

public static JFrame frame;
BufferedImage img;
public static int WIDTH = 500;
public static int HEIGHT = 500;

public Copypasta() {
}

public static void main(String[] a){

    Copypasta t=new Copypasta();

    frame = new JFrame("WINDOW");
    frame.setVisible(true);

    t.start();
    frame.add(new JLabel(new ImageIcon(t.getImage())));

    frame.pack();
    // Better to DISPOSE than EXIT
    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}

public Image getImage() {
    return img;
}

public void start(){

    img = …
Run Code Online (Sandbox Code Playgroud)

java render pixel

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

标签 统计

java ×1

pixel ×1

render ×1

rust ×1

syntax ×1