Article View: pl.comp.lang.javascript
Article #51003Re: Funkcja korzystająca z instrukcji switch
From: Vax
Date: Tue, 24 Jan 2012 17:39
Date: Tue, 24 Jan 2012 17:39
79 lines
3514 bytes
3514 bytes
W dniu 2012-01-24 15:25, PawelS pisze:
> OK tylko, że z tym returnem to trochę pojechałeś,
> może niezbyt czytelnie wyszedł ten [...inline_ciach...],
> w założeniu funkcja/metoda ma zwrócić typ boolean,
to trzeba było napisać, że musi być boolean (a potrafisz uzasadnić
dlaczego?) gdyż sam dokonujesz testowania bliżej nieokreślonej wartości
(bez przyrównywania do żadnej innej), zatem (być może o tym nie wiedząc
;)) posiłkujesz się ekwiwalentami logicznymi innych typów.
> w zależności od wartości jaka się znajdzie w tablicy,
> a tutaj w tablicy USERPERMISSIONS[string_key]
> mogą być zapisane różne wartości,
> także Twój przykład kodu równie dobrze można zapisać:
> return rand(); :P
coś bzdury gadasz, gdyż poprzednio sam wkleiłeś:
if ($this->USERPERMISSIONS[...inline_ciach...])
co w zależności od spełnienia warunku zwraca potem true lub false.
Zatem true zwrócisz gdy if potraktuje
$this->USERPERMISSIONS[...inline_ciach...] jako prawdę, i analogicznie
dla fałszu.
Jakim cudem return ma zwracać random, a if nie?
To ode mnie, też gratis, dostaniesz:
return!!$this->USERPERMISSIONS[...inline_ciach...];
ok, masz "po ludzku":
return(bool)$this->USERPERMISSIONS[...inline_ciach...];
To teraz możesz szukać takiego $bzdet dla którego:
return (bool)$bzdet;
to coś innego niż:
$bzdet?true:false;
albo:
if($bdet){
return true;
}else{
return false;
};
Ja wiem, że kod ma być przejrzysty, ale przejrzyste to jest pytanie "czy
pada deszcz" które zwraca "TAK" lub "NIE".
Nie jest bardziej przejrzyste: "jeżeli pada deszcz odpowiedz TAK w
przeciwnym przypadku odpowiedz NIE".
Nie martw się, bo widziałem już: "jeżeli odpowiedź na pytanie (czy pada
deszcz) brzmi TAK to odpowiedz TAK w przeciwnym wypadku odpowiedz NIE".
Czyli coś w stylu:
if($deszcz==true){
return true;
}else{
return false;
}
zamiast normalnego:
return $deszcz;
(z opcjonalnym rzutowaniem typu, gdy $deszcz nie jest boolowskie a na
wyjściu _musi_ być boolean).
Ty plasujesz się gdzieś pośrodku ;p
Więc zapewne nie napiszesz
return $x>0;
tylko sklecisz jakiegoś if'a z dwoma returnami, choć $x>0 samo w sobie
jest już boolowskie.
v.
PS. po raz kolejny uprzejmie informuję, że to _nie_ jest
pl.comp.lang.php, którą też czasami podczytuję ;)
Technical Details
Message-ID:
<jfmqb1$j0i$1@news.icm.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mailReferences:
<a06e9e8f-2ae6-41a8-b804-31e3ef49e304@d10g2000vbh.googlegroups.com> <jeebqu$2r0$1@inews.gazeta.pl> <jel0oj$hbq$1@news.icm.edu.pl> <jfbo35$gq3$1@julia.coi.pw.edu.pl> <jfcklt$875$1@news.icm.edu.pl> <jfjehq$r02$1@julia.coi.pw.edu.pl> <jflu94$5il$1@mx1.internetia.pl> <jfmf0f$lo5$1@julia.coi.pw.edu.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail From: Vax <mail@zepsul.sie> Newsgroups: pl.comp.lang.javascript Subject: Re: Funkcja korzystająca z instrukcji switch Date: Tue, 24 Jan 2012 18:39:38 +0100 Organization: ICM, Uniwersytet Warszawski Lines: 79 Message-ID: <jfmqb1$j0i$1@news.icm.edu.pl> References: <a06e9e8f-2ae6-41a8-b804-31e3ef49e304@d10g2000vbh.googlegroups.com> <jeebqu$2r0$1@inews.gazeta.pl> <jel0oj$hbq$1@news.icm.edu.pl> <jfbo35$gq3$1@julia.coi.pw.edu.pl> <jfcklt$875$1@news.icm.edu.pl> <jfjehq$r02$1@julia.coi.pw.edu.pl> <jflu94$5il$1@mx1.internetia.pl> <jfmf0f$lo5$1@julia.coi.pw.edu.pl> NNTP-Posting-Host: 89-68-3-67.dynamic.chello.pl Mime-Version: 1.0 X-Trace: news.icm.edu.pl 1327426721 19474 89.68.3.67 (24 Jan 2012 17:38:41 GMT) X-Complaints-To: usenet@news.icm.edu.pl NNTP-Posting-Date: Tue, 24 Jan 2012 17:38:41 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:9.0) Gecko/20111222 Thunderbird/9.0.1 In-Reply-To: <jfmf0f$lo5$1@julia.coi.pw.edu.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit