Anonymní profil peter – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil peter – Programujte.comAnonymní profil peter – Programujte.com

 

Příspěvky odeslané z IP adresy 2001:718:2601:258:b48e:d053:dcbc:69fc...–

peter
Java › Ternary operator
31. 1. 2022   #389810

#9 robin
Tvuj dotaz nedava smysl. Ale to je mozna tim, ze to funguje jinak nez myslis :) 

function aaa (a) // nejaka funkce, ktera neco dela
{
a = a + 1;
return a;
}

function bbb (b) // nejaka druha funkce, ktera neco dela
{
b = b + 2;
return b;
}

function ccc (c) // nejaka treti funkce, ktera neco dela
{
c = aaa(c) + bbb(c);
return c;
}

Funkce aaa() ma vstup, ktery si programator pojmenovam A a s tim pracuje uvnitr sebe.
Kdyz ji chces pouzit ve funkci ccc(), tak ji predavas hodnotu C, ale pro vnitrek te funkce je to A.

Jak to popsat nejak lidsky? To uplne nevim.
Predstav si to tak, ze prineses na postu mic. Ten zabalis do baliku. A balik predas na pobocce. Nevi, co je, co je uvnitr. Jejich ukolem je, predat balik dal, zabalit jej do auta.
Nebo jinak. Mas Balik. Ty reknes, ze je to balik. Pro pani na pobocce, protoze je anglicanka je to Package. A dal s tim pracuje jako Package. Nezajima ji, ze nejaka jina strana si to pojmenuje jinak.

A to je presne ten pripad. Ta funkce si tu promenou muze pojmenovat jak chce. A nebo si to pojmenuji vsichni stejne, aby se v tom programator vyznal. Nazev zastupuje jen adresu v pameti (na pozici 123 mam 5 bytu, k temto 5 bytum pridej dalsich 5 'https').

function aaa (url) // nejaka funkce, ktera neco dela
{
url = url + 1; // muzes, ale nemusis to pojmenovat
// stejne jako je ve funkci CCC !
return url;
}

function bbb (url) // nejaka druha funkce, ktera neco dela
{
url = url + 2;
return url;
}

function ccc (url) // nejaka treti funkce, ktera neco dela
{
url = aaa(url) + bbb(url);
return url;
}

Tak, a ted, proc to nedava smysl.
Ty funkce jsou totiz oddelene. Nejsou nijak propojene, nesdileji promene. Jen shodou okolnosti maji promene pojmenovane stejne, takze to muze vypadat, ze jsou stejne.

To, co rikas ty, to jde take udelat. Ale musel by se pouzit jiny programovy kod. Rika se tomu globalni promena. Ta se da sdilet skrz cely program. Nevim, jak se to pise v jave, takze ti ukazi takovy pseudokod, jak to vypada v jnem jazyce...

var url;

function aaa () // pokud pouzijes globalni prom, tak
// nemusis uvadet parametr v definici funkce
{
url = url + 1;
// nemusis uvadet return, protoze prepisujes globalni promenou
}

function bbb ()
{
url = url + 2;
}

function ccc ()
{
aaa();
bbb();
print url;
}

// a nebo muzes pouzit globalni, neprepisovat ji, ale generovat novy vystup
function ddd ()
{
var new_url;
new_url = url + 2;
return new_url;
//return url + 2; // nebo takto
}

Jeste mozna jinak. Ta addHttp() je samostatna funkce 

private String addHttp(String url) {
return "http://" + url;
}

// toto tam mas
url = url.startsWith("http") ? url : addHttp(url);

// a takto to funguje, predavas y, ve funkci se to jmenuje ale url
String x;
String y;
y = '123';
x = addHttp(y)

------

// a takhle by to mohlo byt s globalni promenou (kdybych umel javu :) )
// a jestli to takhle v jave jde vubec napsat!

private String addHttp() {
url = "http://" + url;
}

String url = "www.eviltester.com";
if (url.startsWith("http")) {addHttp();}

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý