Názor k článku Programovací jazyk Go pro skalní céčkaře (2.část) od anonym - „...V programovacím jazyce Go je ovšem situace zcela...

  • Článek je starý, nové názory již nelze přidávat.
  • 26. 9. 2019 8:53

    bez přezdívky

    ...V programovacím jazyce Go je ovšem situace zcela odlišná, protože v tomto jazyku existují pouze dvě pravdivostní hodnoty – true a false, které jsou typu bool. Žádné další hodnoty se nesmí v rozhodovací konstrukci if, v podmínce smyčky for atd., vyskytovat. ...mohlo by se zdát, že se jedná o přílišnou rigiditu...

    Asi záleží na úhlu pohledu. Jako C++ programátor spatřuji jednu z největších slabin jazyka právě ty spousty implicitních konverzí, nejen v rámci bool, takže jakýkoliv jazyk, který je v tomto co nejpřísnější, má u mě plus.

    Navíc by se mi hodně líbilo mít něco jako „typedef“, jehož alias bude kompilátorem považován za naprosto odlišný typ, tedy např.

    typedef uint16_t UserId;
    UserId currentUser = someSystem.Get­LoggedUserId();
    uint16_t value = currentUser; // Compile error! Cannot implicitly cast from UserId to uint16_t!

    Jsem si vědom toho, že je to možné řešit šablonami, ale asi je vidět, že to není úplně ideální. A třeba v C# to nelze vůbec (tam kdykoliv, kdy opravdu potřebuji izolovat typ, si implementuji strukturu, ale je to otravný copy-paste).