- ZamyslonaOna
- tusk
- Wirtuoz
- iks_
- duch_dauna
- +10 innych
- 0
#programowanie #php
Dlaczego ani automatyczne wykrywanie typu oraz ani podanie go bezpośrednio nie działa?
Kod
------------------------------------------------------------------------------
use rayon::prelude::*;
fn main(){
let qqq: Vec = vec![24, 24, 24, 25, 42, 525, 25, 252, 525, 252, 52];
let vec_file_entry = qqq
.par_iter()
.map(|file_entry| {
if *file_entry < 4 {
return None;
}
if *file_entry > 10 {
return Option::from(None);
}
Option::from(Option::from((*file_entry,*file_entry/2)))
})
.while_some()
.filter(|file_entry| file_entry.is_some())
.map(|file_entry| file_entry.unwrap())
.collect::>();
}
------------------------------------------------------------------------------
Ten kod wyświetla błąd o
- 1
Option::from
. Jesli użyjesz po prostu Some(...)
to kod się kompiluje. Tak już odbiegając to jest jakiś powód dlaczego używasz Option::from
? Nie spotkałem się, żeby ktoś korzystał z tej metody.- 1
- 1
Option::from
to tak naprawdę implementacja traitu From
, który ma metodę o tej nazwie. Przydaje się w przypadku generycznych funkcji.Dopiero zaczynam przygodę z wątkami i chcę wrzucić cześć kodu do wątków aby go mocno przyspieszyć(za pomocą Rayon).
Stworzyłem póki co taki kod(który oczywiście się nie kompiluje)
self.imagestocheck.paritermut().map(|fileentry| {
let image = match image::open(fileentry.path.clone()) {
Ok(t) => t,
Err() => return, // Something is wrong with image
};
let dimensions = image.dimensions();
fileentry.dimensions = format!("{}x{}", dimensions.0, dimensions.1);
let hasher = HasherConfig::withbytestype::<[u8;
- 2
filter_map
użyć map
i skorzystać z while_some
https://docs.rs/rayon/1.5.0/rayon/iter/trait.ParallelIterator.html#method.while_some- 1
Mam taką funkcję
fn select_function(ts : >k::TreeSelection, tm : >k::TreeModel, tp: >k::TreePath, b :bool) -> bool{
true
}
i chcę użyć ją jako argument do funkcji, ale przy wywołaniu
tree_selection.set_select_function(Option::from(Box::new( select_function)));
wywala błąd taki jak na obrazku.
W jaki sposób mogę wywołanie tej funkcji poprawić aby pasowała do definicji?
#rustlang #programowanie
- 2
Option::from
na Some
to się skompiluje, niestety nie jestem pewien dlaczego to pierwsze nie przechodzi :/https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=b290e056028cab0b5d0a881e48982982
W jaki sposób mogę zapisać dane zwrócone przez split do Vec?
Mam taki kod
pub fn setexcludedirectory(& mut self,mut excludedirectory : String) -> bool{
excludedirectory = excludedirectory.replace("\"","");
let directories : Vec = excludedirectory.split(",").collect();
Ale wywala błąd
value of type
std::vec::Vec
cannot be built from std::iter::Iterator
#rustlang
- 2376
- mutozostaw
- progressive
- JakTamCoTam
- reca
- white_noiz
- +2371 innych
- 26
- ProAero
- Bondar
- ruskizydek
- ColdMary6100
- Akilles
- +21 innych
- Gdzie się sprawdza, a gdzie nie i dlaczego,
- Zastosowanie w dużych projektach, (czy i jak)
- Co go wyróżnia na tle innych języków,
- Obecny status np czego mu brakuje, toole, wsparcie
- Przyszłość np kiedy przemysł będzie mógł go adaptować dla swoich potrzeb
Macie może jakieś materiały na ten temat?
Jeśli kogoś interesują takie tematy
- 1
Microsoft pracuje nad nowym językiem programowania wzorowanym na Ruście
Pod kryptonimem Projekt Verona rozwijany jest nowy język, który może zastąpić C i C++.
z- 26
- #
- #
- #
- #
- #
- #
- 8
- 5
Microsoft przepisuje niskopoziomowe komponenty Windowsa na język Rust
Trudno uwierzyć, że kadencja Steve’a Ballmera zakończyła się raptem 5 lat temu.
z- 320
- #
- #
- #
- #
- #
- #
- 1
Zaproponuj taki pomysł Torvaldsowi, żeby przepisał kernel na Ruście ( ͡° ͜ʖ ͡°)
@Amon-Ra: sprawdź pierwszy link z powiązanych ( ͡° ͜ʖ ͡°)
- 0
kod będzie wolniejszy w skali micro
skąd taka pewność?
robi za niego takie rzeczy jak zarządzanie pamięcią
zarządzanie pamięcią jest podobne jak w C++, z tym, że poprawność jest sprawdzana w czasie kompilacji
- 1
No właśnie... "podobne", w skali micro, podobny znaczy nie raz całkowicie odmienny.
@Amon-Ra: w tym przypadku różnice to składnia, sformalizowana semantyka (ownership, borrowing i lifetimes) oraz oparty na niej i wbudowany w kompilator analizator statyczny
- 0
- 1
- 1
Firefox to przeglądarka, która chce stać na straży prywatności.
Firefox regularnie otrzymuje aktualizacje, które w założeniu poprawiać mają bezpieczeństwo oraz prywatność konsumentów. Tym razem mamy do czynienia z dosyć pasywną nowością, ale niech nie zmylą Was pozory – jest ona bardzo interesująca. Przywitajcie specjalny pulpit nawigacyjny.
z- 168
- #
- #
- #
- #
- 6
Mozilla pracuje nad tłumaczem stron działającym lokalnie. Pieniądze dała UE
Zintegrowany tłumacz stron to jedna z największych zalet przeglądarki Chrome. Mozilla ze swym Firefoksem nie chce być gorsza, a w dodatku ma na uwadze prywatność – donosi ghacks.net. Chce przygotować rozwiązanie działające całkowicie po stronie klienta, na co środki dała firmie UE, czytamy.
z- 52
- #
- #
- #
- #
- 0
Głupich pytań z programowaniem ciąg dalszy, tym razem C# i słowo kluczowe this. W sumie jakoś nigdy się nie interesowałem, tylko używałem jako odwołanie do obiektu przy wywoływaniu metod.
Czy jest jakakolwiek różnica pomiędzy:
class dodawaniet
{
protected int a, b;
public dodawaniet(int ia, int ib)
{
this.a = ia;
this.b = ib;
}
public string wypisz()
{
return this.a.ToString() + ", " + this.b.ToString();
}
public int suma()
{
Czy Rust to nowe C? Przed językiem Mozilli maluje się świetlana przyszłość
Wygląda na to, że Rust ma wszystko, czego trzeba, by zastąpić C w niskopoziomowym kodzie. Dostrzegają to Microsoft i Intel, a napisane w Ruście sterowniki dla Linuksa to najpewniej kwestia czasu.
z- 267
- #
- #
- #
- #
- #
- #
- 2
Do tego języki rozwijane są w różnej filozofii i tzw. bezpieczeństwo niesie za sobą ograniczenia - po prostu tracisz w jakimś zakresie kontrole nad tym co robi program i dlatego właśnie stawianie RUST-a w miejscu C nie ma sensu, bo to w zastosowaniach typowo pod C jest wadą a nie zaletą.
@papuv666: Właśnie w przypadku Rusta nie musisz z niczego rezygnować. Język zapewnia ci bezpieczeństwo, ale jeżeli naprawdę tego potrzebujesz to
- 1
- 2
- 12
use std::ops::Add;
struct Vec2 {
x: T,
y: T,
}
impl Add for Vec2
where T: Add
{
type Output = Self;
fn add(self, rhs: Self) -> Self {
Self {x: self.x + rhs.x, y: self.y + rhs.y }
}
}
- 4
- 2
The inspiration for safe borrowed references comes in two ways from the Cyclone programming language, a joint development effort by AT&T and Cornell University. The notion of a borrowed reference is adapted from Cyclone’s polymorphic restricted alias pointers.
http://pling.jondgoodwin.com/post/lifetimes/#borrowed-references
unsafe impl<const N: usize> Send for DK<N> {}
- Write once, debug everywhere.
- http://spoder.pl
#cyberpunk2077