Dart vs. Java
Z MiS
(Rozdíly mezi verzemi)
(Modifikátory přístupu a zápis tříd.) |
(Přidány datové typy.) |
||
Řádka 9: | Řádka 9: | ||
Syntaxi si můžete vyzkoušet například na: [https://www.tutorialspoint.com/execute_dart_online.php TutorialsPoint.com → Execute Dart Online] | Syntaxi si můžete vyzkoušet například na: [https://www.tutorialspoint.com/execute_dart_online.php TutorialsPoint.com → Execute Dart Online] | ||
</div> | </div> | ||
− | |||
== Hello world == | == Hello world == | ||
Řádka 20: | Řádka 19: | ||
print("Hello, World!"); | print("Hello, World!"); | ||
} | } | ||
+ | |||
+ | == Datové typy == | ||
+ | |||
+ | * Dart nepoužívá primitivní datové typy, všechny typy jsou objektové. | ||
+ | * Dart má vestavěné datové typy, pro které lze vytvářet literály (konkrétní hodnoty) přímo v kódu: | ||
+ | ** Číselné typy: <code>int</code>, <code>double</code> | ||
+ | ** Textové typy: <code>String</code> | ||
+ | ** Logické hodnoty: <code>bool</code> (literály: <code>true</code>, <code>false</code>) | ||
+ | ** Záznamy: <code>(hodnota1, hodnota2)</code> | ||
+ | ** Kolekce: <code>List</code>, <code>Set</code>, <code>Map</code>, <code>Runes</code>, <code>Symbol</code> | ||
+ | ** Prázdnou hodnotu: <code>Null</code> | ||
+ | |||
+ | Více viz: [https://dart.dev/language/built-in-types Dart.dev > Built-in Types]. | ||
== String == | == String == |
Verze z 22. 9. 2024, 09:24
Obsah |
Dart vs. Java
- Na této stránce shrnujeme základní rozdíly mezi programovacími jazyky Dart a Java.
- Stránka je určena pro čtenáře, kteří již znají Javu a chtějí se rychle zorientovat v jazyce Dart.
Syntaxi si můžete vyzkoušet například na: TutorialsPoint.com → Execute Dart Online
Hello world
- Pro metodu
main
nemusíme vytvářet zapouzdřující třídu. - Parametry metody
main
jsou volitelné, pokud je nevyužíváme, nemusíme je uvádět. - Výpis na obrazovku se řeší příkazem
print
.
main(){ print("Hello, World!"); }
Datové typy
- Dart nepoužívá primitivní datové typy, všechny typy jsou objektové.
- Dart má vestavěné datové typy, pro které lze vytvářet literály (konkrétní hodnoty) přímo v kódu:
- Číselné typy:
int
,double
- Textové typy:
String
- Logické hodnoty:
bool
(literály:true
,false
) - Záznamy:
(hodnota1, hodnota2)
- Kolekce:
List
,Set
,Map
,Runes
,Symbol
- Prázdnou hodnotu:
Null
- Číselné typy:
Více viz: Dart.dev > Built-in Types.
String
- Textové literály uvozujeme uvozovkami nebo apostrofy (běžněji se využívá apostrof – bohužel pro ty, kdo píší na české klávesnici).
- Víceřádkové texty lze uvozovat třemi apostrofy.
'Text' "Text" """Víceřádkový text"""
- Spojení (concatenate) textů můžete provádět pomocí operátoru
+
nebo tím, že je zapíšete za sebe:
String text = 'Dart' 'is' 'fun'; String text = 'Dart'+'is'+'fun';
- Pro vložení hodnot do textu můžete využít znak
$
, který uvozuje vloženou hodnotu. Hodnotu lze ohraničit${...}
:
print('Seznam $data má největší prvek ${getMax(data)}');
Více o textech v Dartu: Dart.dev → String class.
Práce se seznamy
- Do seznamu v Dartu lze vkládat i prvky primitivních datových typů.
- Lze vytvořit literál seznamu přímo v kódu pomocí znaků
[
a]
.
List<int> ids = [1, 2, 3]; ids.add(6);
- Získání prvku ze seznamu:
print(ids[0]);
- Metoda
print
umí vypsat obsah seznamu.
print(ids);
- Počet prvků seznamu:
print(ids.length)
- Více o práci se seznamy v Dartu viz například: CodeVsColor → Dart insert items to list.
Zápis tříd
- V Dartu můžeme umístit více tříd do jednoho souboru.
Přístupnost vlastností tříd
- Dart nepoužívá modifikátory přístupu
public
,private
aprotected
. - Všechny vlastnosti (atributy a metody) tříd jsou přístupné v rámci jednoho souboru, případně v rámci jedné knihovny (library).
- Veřejné vlastnosti jsou přístupné i z ostatních knihoven (souborů).
- Privátní vlastnosti se odlišují tak, že jejich název začíná podtržítkem.
- Přístupové metody se označují klíčovými slovy
get
aset
.
class A { String first; String _second; String get second { return _second; } void set second(String second) { this._second = second; } }
void main() { A a = new A(); a.first = 'x'; a.second = 'y'; }
Více viz: Woolha.com > Dart using Access Modifiers a FlutterSolution > Understanding Access Modifiers in Dart.
Style: konvence pojmenování
- PascalCase (UpperCamelCase)
- Názvy tříd
- Názvy výčtových typů
class Customer { ... }
- lowercase_with_underscores
- Názvy souborů
- Názvy prefixů pro import
Cílem je zajistit kompatibilitu s různými souborovými systémy, které nemusí rozlišovat velká a malá písmena (case-insensitive).
- camelCase (LowerCamelCase)
- Všechno ostatní ;)
- Na rozdíl od Javy se doporučuje i pro pojmenování konstant. (Z hlediska konzistence s existujícími knihovnami se povoluje i SCREAMING_CASE.)
const defaultTimeout = 1000;
Více o konvencích zápisu kódu viz: Dart.dev → Style.