Czy wiesz, czy istnieje wbudowana funkcja do budowania słownika z dowolnego obiektu? Chciałbym zrobić coś takiego: >>> class Foo: ... bar = 'hello' ... baz = 'world' ... >>> f = Foo() >>> props(f) { 'bar' : 'hello', 'baz' : 'world' } UWAGA: Nie powinno zawierać metod. Tylko pola.
Jak mogę zrobić to, o czym oni tutaj mówią , ale w Rubim? Jak wykonałbyś funkcję na obiekcie? i jak wykonałbyś funkcję globalną (zobacz odpowiedź jetxee we wspomnianym poście)? PRZYKŁADOWY KOD: event_name = "load" def load() puts "load() function was executed." end def row_changed() puts "row_changed() function was executed." end …
Z czegoś takiego: print(get_indentation_level()) print(get_indentation_level()) print(get_indentation_level()) Chciałbym dostać coś takiego: 1 2 3 Czy kod może się w ten sposób odczytać? Chcę tylko, aby dane wyjściowe z bardziej zagnieżdżonych części kodu były bardziej zagnieżdżone. W ten sam sposób, w jaki ułatwia to odczytanie kodu, ułatwiłoby to odczytanie danych wyjściowych. Oczywiście …
Możliwość tworzenia i manipulowania napisami podczas kompilacji w C ++ ma kilka przydatnych aplikacji. Chociaż możliwe jest tworzenie ciągów znaków czasu kompilacji w C ++, proces ten jest bardzo uciążliwy, ponieważ ciąg musi być zadeklarowany jako zmienna sekwencja znaków, np. using str = sequence<'H', 'e', 'l', 'l', 'o', ',', ' …
Zdaję sobie sprawę, jak tworzyć metody pobierające i ustawiające dla właściwości, których nazwy już znamy, robiąc coś takiego: // A trivial example: function MyObject(val){ this.count = 0; this.value = val; } MyObject.prototype = { get value(){ return this.count < 2 ? "Go away" : this._value; }, set value(val){ this._value = …
Czy biorąc pod uwagę lambdę, można określić typ jej parametru i typ zwracany? Jeśli tak, w jaki sposób? Zasadniczo chcę, aby lambda_traitsmożna było używać na następujące sposoby: auto lambda = [](int i) { return long(i*10); }; lambda_traits<decltype(lambda)>::param_type i; //i should be int lambda_traits<decltype(lambda)>::return_type l; //l should be long Motywacją jest …
Próbuję uzyskać nazwę ciągu klasy z samego obiektu klasy. // For instance [NSArray className]; // @"NSArray" Znalazłem, object_getClassName(id obj)ale wymaga to przekazania do niego instancji, aw moim przypadku jest to niepotrzebna praca. Jak więc mogę uzyskać ciąg znaków z obiektu klasy, a nie instancji?
Czytałem artykuł na TheServerSide o programowaniu ployglot na platformie Java . Niektóre komentarze w artykule odnoszą się do metaprogramowania jako możliwości generowania kodu (być może w locie). Czy metaprogramowanie to możliwość generowania kodu w locie, czy też możliwość wstrzykiwania metod i atrybutów do istniejących obiektów w czasie wykonywania (na przykład …
Chcę zająć się bardziej metaprogramowaniem szablonów. Wiem, że SFINAE oznacza „niepowodzenie zamiany nie jest błędem”. Ale czy ktoś może mi pokazać dobre zastosowanie SFINAE?
W niedawnym wywiadzie zadano mi naprawdę dziwne pytanie. Prowadzący wywiad zapytał mnie, jak mogę obliczyć 1 + 2 + 3 + ... + 1000 używając tylko funkcji kompilatora. Oznacza to, że nie wolno mi pisać programu i wykonywać go, ale powinienem po prostu napisać program, który mógłby zmusić kompilator do …
Zamknięte. To pytanie nie spełnia wytycznych dotyczących przepełnienia stosu . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby było na temat przepełnienia stosu. Zamknięte 3 lata temu . Popraw to pytanie Metaprogramowanie statyczne (inaczej „metaprogramowanie szablonów”) to doskonała technika C ++, która umożliwia wykonywanie programów w czasie …
Pony ORM robi niezłą sztuczkę konwertowania wyrażenia generatora na SQL. Przykład: >>> select(p for p in Person if p.name.startswith('Paul')) .order_by(Person.name)[:2] SELECT "p"."id", "p"."name", "p"."age" FROM "Person" "p" WHERE "p"."name" LIKE "Paul%" ORDER BY "p"."name" LIMIT 2 [Person[3], Person[1]] >>> Wiem, że Python ma wbudowane wspaniałe funkcje introspekcji i metaprogramowania, ale …
Jest to przydatne, jeśli próbujesz utworzyć metody klas metaprogramowo: def self.create_methods(method_name) # To create instance methods: define_method method_name do ... end # To create class methods that refer to the args on create_methods: ??? end Moja odpowiedź do naśladowania ...
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.