Witam,
mam problem, jak w temacie. Oglądam tutorial i się głowie o co temu człowiekowi chodziło
public float speed = 150f;
public float jump = 50f;
Witam,
mam problem, jak w temacie. Oglądam tutorial i się głowie o co temu człowiekowi chodziło
public float speed = 150f;
public float jump = 50f;
Domyślnie wszystkie liczby z przecinkiem w C# to double, a bez int. Dodając f mówisz kompilatorowi że to float.
Tak naprawdę w tym miejscu to f
nie ma znaczenia, bo zmienna i tak będzie floatem.
Ale gdyby deklarować zmienną lokalną ze słowem var
to zaczyna mieć to znaczenie, bo na podstawie typu literału określany jest typ zmiennej:
var a = 15; // int
var b = 15.0; // double
var c = 15d; // double
var d = 15f; // float
podobnie jeśli chcemy wymusić konkretną wersję funkcji:
void foobar(double a)
{
Console.WriteLine("double");
}
void foobar(float a)
{
Console.WriteLine("float");
}
void test()
{
foobar(3.14);
foobar(3.14f);
}
Dziękuje za zacną odpowiedź. Muszę chyba trochę poczytać o c#, bo z javy się przestawiam i nie znam takich myków :p
W Javie 10 jest dokładnie tak samo :)
Aktualizacja:
Chodziło mi o 'myki' z varem. Bez vara trzeba użyć 'f' po literale by typy się zgadzały, np: float x = 5.0f
przejdzie, a float x = 5.0;
już nie.
z javy się przestawiam i nie znam takich myków :p
ale przeciez w javie jest identycznie...
niespodzianka, w C/C++ też :)