IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Kamil
Člen
Avatar
Kamil:17.7.2022 13:38

Ahoj,

učim se dart a jeho knihovnu I/O

import 'dart:math';
import 'dart:io';
void main() {
  print ("Zadejte prvni číslo:");
  String cislo1 = stdin.readLineSync();
  print ("Zadejte druhe cislo:");
  String cislo2 = stdin.readLineSync();
  print(int.parse(cislo1) + int.parse(cislo2));
}

Program nefunguje na základě toho, že Visual Studio code hlási, abych přidal před string otazník

Zkusil jsem: Nemůžu najít přesně proč.

Chci docílit: prvni.dart:5:27: Error: A value of type 'String?' can't be assigned to a variable of type 'String' because 'String?' is nullable and 'String' isn't.
String cislo1 = stdin.readLine­Sync();
String cislo2 = stdin.readLine­Sync();

 
Odpovědět
17.7.2022 13:38
Avatar
Ondřej Šrytr:17.7.2022 19:14

Ahoj,

funkce readLineSync vrací String?. Ten otázník udělá z libovolného datového typu datový typ nulovatelný, což znamená, že String? pak můžeš přiřadit null. Důvod proč nemůžeš do proměnné typu String přiřadit String? je pak jasný, nemůžeš do takové proměnné přiřadit null, tedy jen v případě, že by ho funkce readLineSync vrátila. Buď tedy budeš používat String? nebo String? budeš muset nějak přetypovat na String. Jazyk neznám, takže v tomhle ti bude muset poradit někdo jiný.

 
Nahoru Odpovědět
17.7.2022 19:14
Avatar
Kamil
Člen
Avatar
Kamil:17.7.2022 22:14

Ahoj,

vyreseno tímto zápisem
String cislo1 = stdin.readLine­Sync()!;

 
Nahoru Odpovědět
17.7.2022 22:14
Avatar
Odpovídá na Kamil
Pavel Černý:29.12.2022 14:28

Hola, já to řeším jen přes var:

import 'dart:io';
void main() {
   // kdyz vim ze bude cislo
   print ("Zadejte prvni číslo:");
   var cislo1 = int.parse(stdin.readLineSync());
...
   // když si nejsu jistý zda cislo
   var neco = (stdin.readLineSync());
}
Nahoru Odpovědět
29.12.2022 14:28
Všichni jsme celebrity, jen se o nás ještě neví :-) já v roce 2010 slova letěly z kabinky do klabinky
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.