-
Data: 2018-11-19 09:22:44
Temat: Re: Niezmienniki pętli
Od: Roman Tyczka <n...@b...no> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Sun, 18 Nov 2018 23:14:44 -0800 (PST), Maciej Sobczak wrote:
> Wystarczy rozszerzyć składnię asserta. W tej chwili assert musi dostać jedno
wyrażenie, ale można by go rozszerzyć tak, żeby akceptował dowolne fragmenty kodu. W
niektórych językach to się robi o tyle łatwiejsze, że wszystko jest albo może być
wyrażeniem, również pętla While czy cokolwiek innego - wtedy do takiego asserta można
wsadzić dowolny fragment kodu, nawet z własnymi definicjami zmiennych wykorzystanych
w środku. Ale w C++ chyba niewiele trzeba, żeby to osiągnąć, np. z taką składnią:
>
> assert(dowolnyfragmentkodu, wynik_bool);
>
> I użyć tego tak:
>
> assert(
> int i; // albo inne definicje
> int j = x; // x jest na zewnątrz, ale widać go tutaj
>
> while (orzemy_jak_możemy)
> {
> // obliczenia, wywołania funkcji, itd.
> ...
> },
>
> x > 0 && i < 10 // jakiś ostateczny warunek
> );
>
> I wtedy assert, tylko w trybie debug, wykonuje ten kod a na końcu sprawdza warunek
logiczny z drugiego swojego argumentu. W trybie release nic nie robi.
>
> Kto zaproponuje definicję makra assert o takich zdolnościach?
Makra nie zaproponuję, ale wrzucę ciekawostkę.
W języku Solidity, używanym do smart kontraktów w sieci Ethereum
(kryptowaluty) stosuje się coś co się nazywa modifier, przykładowo dopisuje
się w klasie modifier isOwner, który sprawdza czy kontrakt wywołał jego
właściciel i tenże modifier dopisuje się do pozostałych metod, które mają
go sprawdzać przed wywołaniem, w przykładzie robi to metoda getData():
[...]
modifier isOwner {
require(msg.sender == owner);
}
function getData() public isOwner {
return data
}
[...]
ps. require to odpowiednik asserta
--
pozdrawiam
Roman Tyczka
Następne wpisy z tego wątku
- 19.11.18 10:37 Queequeg
- 19.11.18 10:45 Queequeg
- 19.11.18 17:15 g...@g...com
- 19.11.18 19:45 g...@g...com
- 19.11.18 19:49 g...@g...com
- 19.11.18 21:18 s...@g...com
- 19.11.18 21:44 Queequeg
- 19.11.18 22:10 fir
- 19.11.18 22:16 fir
- 19.11.18 23:12 g...@g...com
- 20.11.18 00:00 AK
- 20.11.18 00:20 AK
- 20.11.18 05:37 s...@g...com
- 20.11.18 10:35 Queequeg
- 20.11.18 10:43 Queequeg
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-20 huta ruszyla
- 2025-01-20 piece wodorowe
- 2025-01-20 Lublin => Programista Delphi <=
- 2025-01-20 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-20 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-01-20 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-01-19 Test - nie czytać
- 2025-01-19 qqqq
- 2025-01-19 Tauron przysyła aneks
- 2025-01-19 Nowa ładowarka Moya a Twizy -)
- 2025-01-18 Power BANK z ładowaniem przelotowym robi PRZERWY
- 2025-01-18 Pomoc dla Filipa ;)
- 2025-01-18 znowu kradno i sie nie dzielo
- 2025-01-18 Zieloni oszuchiści
- 2025-01-18 Zielonka => Specjalista ds. public relations <=