<bgdev />free

| |  


All tags 2023 9may ai algorithm alpha amd american api argon2 arm asm asmbb assembler attachment awareness balgaria bay888 bcrypt bender beta bgdev-next bgdev-next.👍 big.data bitchnigga bitcoin bmw boi borg brexit bug bulgaria business c cad chat cloud computer-names console crossorigin deprivation desktop dna dotnet email eupl falling feature forum foundation fp fresh fun game github goats google gpl gpt gpt.3.5 gypsies happiness harvard hash improvement include investment it java javascript js kleta kleta.maqka.balg lambi language learning leftovers legend level levenshtein.dist libx license linkedlist linux ma mcafee mele microsoft minimag minimalism negro net nginx nigga not.a.bug oop paradigm parler patterns perception persuasion pipe play.station politics populi pornhub pow pro programming protonmail python reba rust sci-fi scripting seks seo server shell sleep smartbeauty soft-skills sqlite srabska sse starship sugerface syntax tablet tailwindcss telegram theme thug troll80lvl tutanota typescript uacme ui uk unix untermensch upload uptime usa utilities ux vb via viber virtual.reality vox vps vulnerable war wasm weapons-grade web windows word x86 xbox xss youtube zig ziglang Übermensch БОКЕБЪЛГАРИН БЪ БЪлгария Белезниците Били Били.Белезниците БялДонор Веган Виста Възраждане ГЛУПАК Гана Глиста ЕС Казарма Копейкин Мода.и.овча.мисъ НЕКАДЪРНИК НРБ ПО-ЗЛЕ.И.ОТ.РАБИ Подкасти Разни Румен СИК СКУМ СетенЧук Скум ТИР Туче Украйна Урсула Яначков авангард аз айфонджия алгоритми амбиции анархизъм антиваксъри армения аудио аутисти бази.данни бакъп без без.пръчове безпросвета бенчмарк биготи биомаса бира боклук борисов ботев брадва булшит бъг бъгове бял ваксина вандал век венерика викинги вицове вишу война вървежен гана ганорник гей гейщина германия герои гешев глупак говеда групировка гюбек данъкоплатец двойни.стандарти дедотия демокрация дизайн дисциплина добитък докери долар донори држава дришльо дрон ебане еврогейски.съюз езици експеримент електроника електроника.s2 емиграция ендпойнт енум ерген ергономия жалкар задача затоплизъм защита здраве златен злато игри идеали идиократ идиократи идиокрация идиот избори избори.рабин изкуство икономика имбецили имейл инвестиране инокулация инструмента интервю ипад искам.да.си.реда казах камшикодържач капитализъм карабах караница картечница кино клавиатура ковид19 колайдер колям.кур комари комплексар комунизъм консолидация конспирации космонавтика кофа кофит-19 краставица криптовалути курви кучелюбци лайно лаладжия лаптоп либерастия литература лоши.практики луд лъжеучени лъжец любов майни майтапи малоумници мафия мениджмънт месо местене метавселена метафизика механика мистика мисъл мода мода.овча.мисъл модерация морал мутра мутри наука национализъм не.it негър некадърник некадърници неон нидерландия овча овчи олигофрени организация офтопик парички партия педал пенджури пенсия пишока плюскане победа погромист поезия политика порно посредствен почивка празници прасе превод предалщина програмиране проект проста простотии против.правилата проф пръч пръч.дришльо пръчка психика психични.болести психология пустиняк путин путката путьо рабин рабин.е.шибан.пе работа радост разврат разни разработка расизъм резерват рейтинг реклама рекламен религия рест ризи ропче ропчета русия руски.език рутина самоковска сасипаха секира село селяндур сериали сериозно.програм сетен сеянин симулация скопяване скръм слушалки сортиране софия софтуер софтуни социализъм спектрометър спринтове сране стандарти стил стуйо стюи сушилня сцена съвет съм сън сървър сърничка таб ташаци телевизия тема територията терминология термояд технологии титли традиция тролинг тръмп туба туче тъпак тъпанари тъпня уиндоус украйна умнокрасивци фалит фантастика фашизъм фейк.акаунти физика филми форум форумни.проекти футбол хазарт хамали харабия хардуер хахаха хомофобия хостинг храна хумор цайко цайси целофан цензура цензурра циганин чалга чалгар чекии чернокраки честота чипове чнг чужбина чук шпация щайга юан яката яко ям 🔨 😂 🪓


Rust Generics

  


  ФейкПрофил  Създадено на 28.12.2020, видяно: 1253 пъти. #24789

Rust generics are awesome!

Примерно с това парче мога да парсвам редове от текстов файл към абсолютно всеки тип който имплементира FromStr без да трябва да му напиша типа нито веднъж:


pub fn parse_lines<I, T, E>(input: I) -> Vec<T>
where
    I: AsRef<str>,
    E: Debug,
    T: FromStr<Err = E>,
{
    input
        .as_ref()
        .lines()
        .map(|ж| ж.parse())
        .collect::<Result<_, _>>()
        .unwrap()
}

За сравнения, същото нещо не може да се напише на джава :)



  |  Създадено на 29.12.2020, видяно: 1206 пъти. #24940

I wished I cared. :) Даже дженерикс дето мислят да ги слагат в Go2 не съм ги гледал още. Дано да не пречат много.



  Дон Реба  Създадено на 30.12.2020, видяно: 1158 пъти. #25127

това темплейти ли ще рече? ако слушкате и папкате, за следващата версия и new/delete може



  ФейкПрофил  Създадено на 30.12.2020, видяно: 1144 пъти. #25133

Не са темплейти . С риск да се изложа, но те не работят ли на принципа search & replace, което ти позволява да плеснеш всеки тип на мястото на параметъра ?

По-скоро е concepts, но по-човешки направено



  Delegate  Създадено на 30.12.2020, видяно: 1142 пъти. #25134

Да не би да бъркаш макроси с темплейти в С++ ?



  ФейкПрофил  Създадено на 30.12.2020, видяно: 1137 пъти. #25138
Delegate

Да не би да бъркаш макроси с темплейти в С++ ?

Не, те и макросите са същата боза де, само че още по-прокиснала.


template <class T>
T GetMax (T a, T b) {
  T result;
  result = (a>b)? a : b;
  return (result);
}

и ако направя

k=GetMax<int>(i,j)

компилатора просто ще смени всяко срещане на Т с int и ако случайно резулатата се компилита - супер, ако не - кур.

Докато в ръст ако искаш да можеш да използваш операциите >, <, etc то трябва да каше, че типа ги поддържа:

fn max<T: *Ord*>(a: T, b: T)
 -> T

И ако се опиташ да ползваш нещо друго различно от >, <, etc ще т икаже че неможе, даже конкретния тип да го има тоя метод. Докато в Ц++ след като компилатора мине със search &replace na типа Т ако има метода - ще се компилира, ако не - пак ще се опита да го компилира

Не знам дали успях да обясня



  Delegate  Създадено на 30.12.2020, видяно: 1134 пъти. #25139

Да, така е. Това е кофти в С++, ако ползваш някаква библиотека с темплейти и нали се сещаш какви еррори изплюва.



  |  Създадено на 30.12.2020, видяно: 1122 пъти. #25142

За такива неща като дженерикс трябва да има изискване да ги използват само хора, които ги мразят ужасно. Иначе се случват неща като C++ проекти.



  гофи2  Създадено на 30.12.2020, видяно: 1120 пъти. #25144
ФейкПрофил

За сравнения, същото нещо не може да се напише на джава :)

Не ги разбирам тия неща, но в жабата има някакъв такъв тип. И в острото Ц май има. Може тук просто да е по-лачено. Жабата има огромно наследство и не може да чупи неща.



  code2  Създадено на 30.12.2020, видяно: 1102 пъти. #25176
|

За такива неща като дженерикс трябва да има изискване да ги използват само хора, които ги мразят ужасно. Иначе се случват неща като C++ проекти.

Не само за дженерикс, но и за всяка малко "по-оплетена" технология трябва да се прилага този метод. Проблемът е, че 90% от тези които научат съответните технологии, то после се опитват да ги прилагат колкото се може повече, за да си докажат на себе си колко са велики.



  Stilgar  Създадено на 30.12.2020, видяно: 1092 пъти. #25181
ФейкПрофил

Rust generics are awesome!

Примерно с това парче мога да парсвам редове от текстов файл към абсолютно всеки тип който имплементира FromStr без да трябва да му напиша типа нито веднъж:


pub fn parse_lines<I, T, E>(input: I) -> Vec<T>
where
    I: AsRef<str>,
    E: Debug,
    T: FromStr<Err = E>,
{
    input
        .as_ref()
        .lines()
        .map(|ж| ж.parse())
        .collect::<Result<_, _>>()
        .unwrap()
}

За сравнения, същото нещо не може да се напише на джава :)

Какво гледаме? Че прекарва generic T от return-а обратно по веригата?



  ФейкПрофил  Създадено на 30.12.2020, видяно: 1084 пъти. #25185
Stilgar
ФейкПрофил

Rust generics are awesome!

Примерно с това парче мога да парсвам редове от текстов файл към абсолютно всеки тип който имплементира FromStr без да трябва да му напиша типа нито веднъж:


pub fn parse_lines<I, T, E>(input: I) -> Vec<T>
where
    I: AsRef<str>,
    E: Debug,
    T: FromStr<Err = E>,
{
    input
        .as_ref()
        .lines()
        .map(|ж| ж.parse())
        .collect::<Result<_, _>>()
        .unwrap()
}

За сравнения, същото нещо не може да се напише на джава :)

Какво гледаме? Че прекарва generic T от return-а обратно по веригата?

Нещо такова, но не от ретърн-а, ами от извън функцият, но не това е интересното.

Интересното и важното в случая е, че може да се викат методи на конкретния тип през generic параметър-а, и точно това е което не може да се направи на джава, за Цострото не знам, но ще ми е интересно да разбера.

В случая parse() все едно се явява статичен метод на Dog & Cat, и компилатора вика правилния "статичен" метод в зависимост от конкретния тип, нищо че вътре в метода се споменава само интерфейса (FromStr).

Докато в джава няма статични методи в интрефейса - в смисъл има,но те принадлежат на типа на интерфейса, а не на типа на конкретния клас който го имплементира. И поради тази причина не може да се напише такъв generic method.

Примерно такова нещо е невалидно в джава:

interface FromStr{
  static FromStr parse(String input);
}

class Cat implements FromStr{
  static FromStr parse(String input);
}

class Dog implements FromStr{
  static FromStr parse(String input);
}

<T: extends FromStr> T parse_input(String input) {
  return T::parse(input);
}




  Stilgar  Създадено на 31.12.2020, видяно: 1059 пъти. #25266

Така на око ми изглежда сякаш това е feature на статичните методи, а не на generics конкретно. То като няма ООП май си е задължително да има нещо такова.



Rust Generics

  



AsmBB v3.0 (check-in: 7544654b24928b93); SQLite v3.47.0 (check-in: 03a9703e27c44437);
©2016..2024 John Found; Licensed under EUPL; Powered by Assembly language Created with Fresh IDE