Aktywne Wpisy

volodia +18
Nie chcę, po prostu nie chcę wpadać w ten chory schemat kredytu na 30 lat i zostawania niewolnikiem banku. Przeraża mnie to że nie będę mógł zrezygnować z pracy nawet raz na kilka lat i wyjechać w podróż na 3 miesiące. Że będę uwiązany jak wiejski burek łańcuchem rat. Nie chcę być uczestnikiem tego chorego systemu.
Moje oszczędności zjada inflacja. Nawet nie opłaca się oszczędzać. To jest rozbój w biały dzień. I
Moje oszczędności zjada inflacja. Nawet nie opłaca się oszczędzać. To jest rozbój w biały dzień. I





pisze w cpp - całkiem spoko
pisze w php, pythonie - mam pare uwag, ale spoko
kodze w html/css - spoko
napisałem hello worlda w ruście, i 3 raz mnie ten język wkurzył
1) instalacja
instalujesz dodatek do vs code
w cmd robisz specjalny nowy folder
2) oczywiście nie na dysku D który wybrałem, tylko zrobił sobie nowy folder w userach na C. najbardziej upośledzona lokalizacja
robisz tam nowe cargo
wchodzisz do tego folderu
odpalasz vs code przez code .
i dopiero łaskawie możesz pisać w ruście
3) dostałem warning, że nazwa dla pliku z poradnika jest napisana pascal casem a nie snake casem
i jeszcze miałem chwile beki jak mi windows plik .rs zinterpretował jako plik do odpalenia w gimpie
i tym, co ma być tak niesamowitym w ruście jest to, że nie możesz nic zrobić bez potwierdzenia 40 razy że tego chcesz? czy coś jeszcze rewolucyjnego robi rust, czego nie było chociażby w ansi c
#naukaprogramowania #programowanie
XDDDD
cargo run w terminal visual studio code
to nie są zastrzeżenia do języka tylko do narzędzi
nie wiem, nie używam
@RedveKoronny:
Nie wiem na co narzekasz, nie potrafisz otworzyć VS Code w odpowiednim folderze czy co? xD
rust za to wymyślił problem żeby pokazać że umie go rozwiązać
1. Otwierasz VS Code
2. Wpisujesz w terminal
cargo newProste? xD
Masz syndrom sztokholmski i tęsknisz za CMake czy co? ( ͡° ͜ʖ ͡°)
o cargo akurat mowie ze moze miec jeszcze sens jakbym je ogarnal
mowie o samym ruscie jako języku, zwłaszcza z immutability by default i usilnym blokowaniu modyfikowaniu zmiennych. w następnej wersji za zmodyfikowanie zmiennej będziesz miał przysiady na komendzie xD
serio, ile razy ci się zdarzyło zrobić:
int a=5
int b=6
a=b
a chciałeś b=a, i sie przez to kod wywalił
Mówię serio, pogadamy za 3 lata xD
ale chętnie się dowiem o tej optymalizacji, oraz reszcie aspektów które wypisałeś. a nóż zmienie zdanie
Żeby docenic czyste funkcje to trzeba trochę zmienić sposób myślenia o kodzie, i nauczyć się jakiegoś języka funkcyjnego. Ja polecacam Haskella i ten tutorial.
Co do optymalizacji to kompilator może założyć że wartość nie ulega zmianom, i nie musi sprawdzać jej wartości odzczytami. I to są rózne naprawdę optymalizacje, temat dość złożony. Jako prosty przykład zobacz ten kod w Godbolcie
std::vector a = {1, 2, 3, 4, 5};
std::vector b = {6, 7, 8};
std::copy_n(a.begin(), 3, b.begin());
A chciałeś skopiować z
bdoa, a nie zadob. Innym przykładem jest to, że kompilator nie może tego np. zoptymalizować dostatecznie dobrze, bo nie może założyć, żea.begin()nie pokrywa się zb.begin()(aliasing) przez co musi robić kopiowanie element po@RedveKoronny: tak, dokładnie to. Rust nie pozwala Ci strzelić sobie w stopę i gwarantuje Ci, że jeśli wyraźnie nie zaznaczysz, że w tym fragmencie strzelanie w stopę jest dozwolone, to nawet nie da Ci broni do łapki.
#!$%@?ł mi 6 warningów przy 7 liniach kodu, i zaraz nie strzele sobie w stope tylko popełnie rytualne bukakke
fn FindSqrt(number:f32, precision:f64)->f32{
let mut a=1.0;
let mut b=number/a;
let mut done=false; // tak, prawdopodobnie to musi być takie upośledzone
while !done{
a=(a+b)/2 as f32;
b=number/a;
if (a-b).abs()<=precision as f32 {
done=true;
}
}
return a;
}
use std::io;
fn main() {
let mut x=String::new();
io::stdin().read_line(&mut x).expect("Error reading input");
let x = x.trim().parse().expect("Error parsing number");
let i_wanna_die=FindSqrt(x, 0.0001);
println!("Sqrt is equal: {}",i_wanna_die);
let mut temp=String::new();
io::stdin().read_line(&mut temp).expect("Error reading
as f32, bezsensownegodone = true, czy innych rzeczy.A program się nie "wywala" po skończeniu działania, tylko wyłącza. Tak jak każdy porządny program powinien zrobić.
Przy okazji poprawiłem konwencję nazewniczą (funkcje powinny mieć nazwy
snake_caseo czym Ciebie nawet kompilator informuje).