Во первых, почему указатели в Rust называются ссылками?
Вот как это вместить - после плюсов вызывает неприязнь.
Rust появился в 2006
на данное время крупных проектов использующие его (кроме дискорда) нет
Насколько я знаю,в c++ несколькими строчками можно задать размер открываемой консоли в пикселях.
&'static str
. Тоесть это заимствованная ссылка на объект с неограниченным временем жизни.std::string::String
let a: String = String::from("a");
let b: String = "b".to_string();
let c: String = "c".into(); // или "c".into::<String>(), если не указывать тип явно.
let d: String = "d".to_owned();
Он же нигде в этом коде не используется
use std::io;
fn main() -> io::Result<()>{
let mut input = String::new();
println!("Введите свое имя: ");
io::stdin().read_line(&mut input)?; // Тут
println!("Ваш имя: {}", input);
Ok(()) // И тут
}
❯ cargo -V
cargo 1.58.0 (7f08ace4f 2021-11-24)
❯ rustup toolchain list
stable-x86_64-pc-windows-msvc (default)
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug executable 'rust-demo'",
"cargo": {
"args": [
"build",
"--bin=rust-demo",
"--package=rust-demo"
],
"filter": {
"name": "rust-demo",
"kind": "bin"
}
},
"args": [],
"cwd": "${workspaceFolder}"
},
{
"type": "lldb",
"request": "launch",
"name": "Debug unit tests in executable 'rust-demo'",
"cargo": {
"args": [
"test",
"--no-run",
"--bin=rust-demo",
"--package=rust-demo"
],
"filter": {
"name": "rust-demo",
"kind": "bin"
}
},
"args": [],
"cwd": "${workspaceFolder}"
}
]
}
Уже можно его брать за основу для продукта или это будет "плакали - кололись и продолжали жевать"?
use std::{fs::OpenOptions, io::Write, path::Path};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let target = "https://www.rust-lang.org/static/images/rust-logo-blk.svg";
let response = reqwest::get(target).await?;
let path = Path::new("./image.svg");
let mut file = OpenOptions::new().create(true).write(true).open(path)?;
let content = response.text().await?;
file.write_all(content.as_bytes())?; // Хочу асинхронно писать в файлы. Как это можно сделать?
Ok(())
}
use raylib::prelude::*;
fn main() {
let (mut rl, thread) = raylib::init()
.size(640, 480)
.title("Hello, World")
.build();
while !rl.window_should_close() {
let mut d = rl.begin_drawing(&thread);
d.clear_background(Color::WHITE);
d.draw_text("Hello, world!", 12, 12, 20, Color::BLACK);
}
}
Почему нельзя было сделать как в python, один раз установил либру, пользуешься везде!
то она будет скачана и скомпилирована, а затем в другом проекте мне понадобится таже библиотека, и в итоге она будет опять скачена и скомпилина,
Почему скомпилированный «Hello World», на Rust занимает на диске 10 Мегабайт?
Насколько критичной проблемой для программиста является ручное управление памятью, которое называют недостатком языка Си?
Новый язык программирования Раст, как заявляют, лишен этого недостатка
разве общее число ошибок не перераспределяется на другие недостатки
являются ли ошибки с памятью ошибками программиста
которые вылились бы в другое русло, не будь этой возможности ошибочного использования памяти?