#c #go #rust
🧨 "Object-oriented" structs: C vs Go vs Rust
Mazkur 3 tilni birlashtiruvchi bitta jihat bor: ularda class-object degan tushuncha yo'q va uning o'rniga structga method biriktirib functionality implement qilinadi.
C da eng yoqtirgan fichalarimdan biri function pointerlar. Struct ichiga funcptr e'lon qilib, tashqarida funksiya yozib pointeri orqali bog'lasa bo'ladi. Lekin turli error holatlarni qo'lda tekshirishimiz shart. Binding dynamic.
Golang. Bunda pointer receiverlar orqali function pointersifat narsa yoziladi, logika juda o'xshash. Lekin C dan farqli ravishda method static bind qilinadi.
Rust. Bunda esa impl keywordi orqali struct implement qilinadi, lekin logika juda o'xshash. Binding esa ham static ham dynamic bo'lishi mumkin (dyn trait orqali).
@voidplog
🧨 "Object-oriented" structs: C vs Go vs Rust
Mazkur 3 tilni birlashtiruvchi bitta jihat bor: ularda class-object degan tushuncha yo'q va uning o'rniga structga method biriktirib functionality implement qilinadi.
C da eng yoqtirgan fichalarimdan biri function pointerlar. Struct ichiga funcptr e'lon qilib, tashqarida funksiya yozib pointeri orqali bog'lasa bo'ladi. Lekin turli error holatlarni qo'lda tekshirishimiz shart. Binding dynamic.
Golang. Bunda pointer receiverlar orqali function pointersifat narsa yoziladi, logika juda o'xshash. Lekin C dan farqli ravishda method static bind qilinadi.
Rust. Bunda esa impl keywordi orqali struct implement qilinadi, lekin logika juda o'xshash. Binding esa ham static ham dynamic bo'lishi mumkin (dyn trait orqali).
@voidplog