rustup help toolchain 列出以下子命令
SUBCOMMANDS:
list List installed toolchains
install Install or update a given toolchain
uninstall Uninstall a toolchain
link Create a custom toolchain by symlinking to a directory
help Prints this message or the help of the given subcommand(s)
Run Code Online (Sandbox Code Playgroud)
我安装了以下工具链
stable-x86_64-unknown-linux-gnu (default)
nightly-2019-09-05-x86_64-unknown-linux-gnu
nightly-x86_64-unknown-linux-gnu
master
Run Code Online (Sandbox Code Playgroud)
我试图解决 rust-clippy 的问题,所以我不得不安装主工具链。尽管将稳定设置为我的默认工具链,但我当前的工具链是主工具链,我想切换回稳定。如何在不卸载主工具链的情况下执行此操作?
没有 switch 子命令吗?
我有一个用 Go 编写的 Web 服务器,可以与 Rabbitmq 和 Mongodb 交互。当我在没有容器的机器上运行所有这些服务器时(rabbitmq url:),amqp://guest:guest@localhost:5672它工作正常。
现在我尝试在单独的容器中运行所有这些服务。这是我的撰写文件
version: '3'
services:
rabbitmq:
image: rabbitmq
container_name: rabbitmq
ports:
- 5672:5672
mongodb:
image: mongo
container_name: mongodb
ports:
- 27017:27017
web:
build: .
image: palash2504/collect
container_name: collect-server
restart: on-failure
ports:
- 3000:3000
depends_on:
- rabbitmq
- mongodb
links: ["rabbitmq", "mongodb"]
networks:
default:
external:
name: collect-net
Run Code Online (Sandbox Code Playgroud)
这是我的服务器 dockerfile
FROM golang
ENV GO111MODULE=on
WORKDIR /app
COPY go.mod .
COPY go.sum .
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 …Run Code Online (Sandbox Code Playgroud) 我正在为 TCP 服务器编写客户端
use std::net::TcpStream;
use std::io::{Read, Write, Error};
pub struct Client {
addr: String,
conn: Option<TcpStream>,
}
impl Client {
pub fn connect(&mut self) {
let res = TcpStream::connect(&self.addr);
match res {
Ok(c) => {
self.conn = Some(c);
},
Err(_) => panic!(),
}
}
pub fn version(self) -> Result<[u8; 8], Error> {
let mut ver: [u8; 8] = [0;8];
let command_string = b"VERSION\r\n";
let res = self.conn.unwrap().write(&command_string[0..]);
match res {
Ok(_) => self.conn.unwrap().read(&mut ver[..]),
Err(e) => panic!(e)
};
Ok(ver) …Run Code Online (Sandbox Code Playgroud) 新手 rustacean 在这里。我正在编写一个 TCP 客户端,并且conn在我的客户端结构中有一个字段。我的客户端实现了两种方法new来实例化结构并连接以打开与服务器的连接并将其设置为conn字段的值
pub struct FistClient {
addr: String,
conn: TcpStream,
}
impl FistClient {
pub fn new(ip: &str, port: &str) -> Self {
FistClient {
addr: String::from(ip) + ":" + &String::from(port),
// conn: <some-defaullt-value>,
}
}
pub fn connect(&mut self, ip: &str, port: &str) {
let res = TcpStream::connect(&self.addr);
match res {
Ok(c) => self.conn = c,
Err(_) => panic!(),
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想conn将新方法中的字段设置为某个默认值。在 Go 中,我可以做类似的事情,conn: nil但在这里不起作用。我也尝试 …
mongo 的 go 驱动程序返回 bson 时间戳,如https://godoc.org/go.mongodb.org/mongo-driver/bson/primitive#Timestamp 有没有办法将其转换为time.Time
我正在尝试将我的第一个箱子发布到 crates.io。
当我在本地构建项目时,我可以传递该--release标志来获取优化的二进制文件,但是当我这样做时,cargo publish --dry-run它似乎正在构建未优化的二进制文件,因为这是输出的倒数第二行:
Finished dev [unoptimized + debuginfo] target(s) in 24.79s
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我想构建一个优化的二进制文件并将其发布到 crates.io。
假设我有一个使用以下命令设置的位图
setbit key 0 1
setbit key 1 1
setbit key 2 0
setbit key 3 1
setbit key 4 1
Run Code Online (Sandbox Code Playgroud)
当我从 redis-cli 运行这个键时,我得到以下结果: "\xd8"
但是当我使用go-redis API 时得到了不同的结果:@
为了获得上述结果,我使用了以下代码:
package main
import (
"fmt"
"github.com/go-redis/redis"
)
func main() {
client := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "",
DB: 0,
})
pong, _ := client.Ping().Result()
fmt.Println(pong)
client.SetBit("key", 0, 1)
client.SetBit("key", 1, 1)
client.SetBit("key", 2, 0)
client.SetBit("key", 3, 1)
client.SetBit("key", 4, 1)
res := client.Get("bmk").Val()
fmt.Println(res)
}
Run Code Online (Sandbox Code Playgroud)
我在 redis 文档中的任何地方都找不到 cli …
我正在尝试使用以下布局编写一个 Rust 库:
\n\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Cargo.lock\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Cargo.toml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 examples\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.rs\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 src\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 client.rs\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 lib.rs\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 target\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 rls\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 debug\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 deps\nRun Code Online (Sandbox Code Playgroud)\n\nclient.rs拥有所有代码并且客户端结构是公开的
lib.rs包含pub mod client;
示例/main.rs:
\n\nextern crate fistrs;\n\nuse fistrs::client::FistClient;\n\nfn main() {\n let mut client = FistClient::new("localhost", "5575");\n client.connect();\n}\nRun Code Online (Sandbox Code Playgroud)\n\n但当我运行这个时出现错误rustc examples/main.rs
extern crate fistrs;\n\nuse fistrs::client::FistClient;\n\nfn main() {\n let mut client = FistClient::new("localhost", "5575");\n client.connect();\n}\nRun Code Online (Sandbox Code Playgroud)\n\n这是我的Cargo.toml
[package]\nname = "fistrs"\nversion = "0.1.0"\nauthors = ["palash25 <npalash25@gmail.com>"]\nedition …Run Code Online (Sandbox Code Playgroud) 如果我需要在 Zig 中声明一个结构,我必须在它前面加上前缀const
const Arith = struct {
x: i32,
y: i32,
fn add(self: *Arith) i32 {
return self.x + self.y;
}
};
test "struct test" {
var testArith = Arith{
.x = 9,
.y = 9,
};
expect(testArith.add() == 18);
}
Run Code Online (Sandbox Code Playgroud)
但它可以用两种方式初始化var,那么const为什么类型声明需要一个常量关键字,而只关心结构体的实例const是否存在呢?