saxus (statz) | #9, Agyfasz (419) |
1672 | #2a60 | ^ | Idézet | Thu, 30 Jan 2014 01:53:29 +01 |
84.3.*.* | *.catv.pool.telekom.hu |
Konkrétan nem jut eszembe olyan eset, mikor karaktereket kellett cserélgetnem egy stringben C#-ban. Legalábbis olyanra, amit a Replace() ne tudott volna megoldani. Parseoláshoz meg olvasásra van szükség, azt minden további nélkül lehet, mert hogy-hogy nem, van read only indexere. (Segítek: ez működik: string s = "asdf"; char ch = str[1]; Csak ez nem: str[1] = 'x']; Ez van, multithread és egyéb ilyen apróságok jelenleg fontosabbak, mint az, hogy mi volt 40 éve.
Attól, hogy te a refcountert nem egy GC technikának hívod, attól még az. http://en.wikipedia.org/wiki/Garbage_collection_%28computer_science%29#Reference_counting
Ez fasság, semmi köze a kettőnek egymáshoz. Ha ez lenne a definíció, C++-hoz se létezne GC.
Igen, csak a "sima" string becsületes neve AnsiString, mert a "sima" string az csak egy alias rá. Illetve, hát attól függ, hogy melyik fordító illetve milyen fordítási opciók vannak beállítva. Példának okáért a Delphi 2009 doksijából: "On the Win32 platform, the compiler interprets string (when it appears without a bracketed number after it) as UnicodeString. ". Az meg ugyanúgy működik, mint az AnsiString.
Teljesen mindegy, az a lényeg, hogy referencia típus. |
TCH (statz) | #1, Főfasz (10443) |
4480 | #2a61 | ^ | Idézet | Thu, 30 Jan 2014 14:00:22 +01 |
31.46.*.* | *.catv.pool.telekom.hu |
Értem, tehát, ha neked nem kell, akkor senkinek sem kell. No comment. http://msdn.microsoft.com/en-us/library/system.string.replace(v=vs.110).aspx Ez tud olyat, hogy adott karaktert vagy adott stringet cserél egy másikra. De mi van, ha nekem nem adott karaktert kell cserélnem, hanem adott pozíción lévő karaktert? Tudom, konvertáljam át chartömbbé, majd vissza. A PHP typejugglingja az a sátántól való (egyébként ja), de bezzeg a C#-ben ez a szent grál. Óje. A fölényeskedést lehet abbafejezni. Te mondtad, hogy nincs karakterszintű acces, nem tetted hozzá, hogy readonly az van. Ez a multithread buzzword ez valami mánia nálad. A dotnetben (meg a dzsuvában is) a multithread azt jelenti, hogy már több szálon terheli szarrá a processzort. Ööö... Na most Garbage Collection vagy Garbage Collector? Mert nem mindegy. Aha, akkor Garbage Collection. Így oké. Csakhogy én a Garbage Collectorról beszéltem, ami egy külön szálon fut a háttérben. Ilyen C++-ban és Pascalban nincs. Egy nagy lófaszt alias rá! Az AnsiString az ugyanolyan, mint C-ben, egy NUL zárja le a karakterláncot, míg a sima String az egy előre allokált 256 byte-os blokk, aminek a 0. byte-ja mondja meg, hogy hány byte hosszú az egész string! Ha nem hiszel nekem, akkor forgasd le ezt a kódot: program anyad; const faszom: array[0..1] of string = ('Bazdmeg' + #32, 'geci!' + #10); begin write(faszom[0], faszom[1]); end.Aztán nyisd ki egy hexaeditorral: Látod? Ezután módosítsd szépen a String típust AnsiString-re. Aztán hexaeditor: Tessék. Kb. ennyire alias a kettő! Semennyire! Már megint fogalom nélkül zagyválsz össze vissza... Nem tudom, hogy a D2009 miért csinálja ezt, mert a Pascalokban a String az tradicionálisan a blokkos verzió. FreePascalban is így megy, meg a régebbi Delphikben is. És az UnicodeString kurwára nem ugyanúgy működik, mint az AnsiString! Mi is az AnsiString? Olyan string, amit egy NUL zár le! Hát akkor az UnicodeString rögtön az első non-unicode karakter után lezárulna! Az UnicodeString fix 16-bit width, az AnsiString mixed width, tudniillik, abban is lehet unicode karakter: Úgyhogy mondom, totál fogalom nélkül hadoválsz össze vissza, már megint kevered a byte szintű dolgokat, mint múltkor a MySQL 255 karakter vs. 255 byte beszólásodnál, azt meg nem is minősítem, hogy ha neked nincs valamire szükséged, akkor feltételezed, hogy másnak sincs. No comment. Fölmegyek a hupra, nézem a blogbejegyzéseket, van köztük egy ilyen: Linux gaming éve - 2014 elején. Na mondom, ez tuti valami fikacikk lesz. Kinyitom. saxus. Naná. Kérdem én, miért fáj neked az, hogy a vulva portol pár régi játékot Linuxra? Mi ez a butthurt dumával megspékelt, erőltetett százalékszámítgatás, ahogy görcsösen próbálod bebizonyítani, hogy a Linux részesedése a steamen nem is 0.0x%, hanem csak 0.0x-0.0y? Nem mindegy? |