Wiem, że na przykład '5'
jest literał typu char
, ale jest 5 * 5
literał? Jest to wyrażenie, ale ma ustaloną wartość.Czy 5 * 5 jest dosłownym lub po prostu wyrażeniem?
Odpowiedz
Nie sądzę, że można to nazwać dosłownym. Możliwe, że niektóre kompilatory potraktują to w taki sam sposób, w jaki traktują dosłownie, zobacz komentarz na temat języka, którego używasz.
Jak opisano w Java Language Specification §15.28, jest to szczególny przypadek wyrażenia o nazwie "wyrażenie ciągłe w czasie kompilacji". To nie jest dosłowne.
Nie ma sposobu na odczytanie z kodu bajtowego, czy zostało to zapisane jako '5 * 5' lub' 25' +1. –
"Literalny" jest terminem gramatycznym, a nie semantycznym. Jest to podstawowy element konstrukcyjny oznaczający stałą wartość.
Chociaż według specyfikacji 5 * 5
i 25
oznacza dokładnie to samo, gramatycznie pierwszym jest wyrażenie binarne zawierające dwa literały i operator, a drugie jest po prostu literałem.
Nie jestem pewien, ale czy te warunki nie działają tak?
- podczas korzystania z jakąś wartość dokładnie określić wartość zmiennej „w prostej drodze” powinien być nazywany jako „dosłowne”
var num =5; var stringLabel = "someText";
itp - podczas korzystania z jakąś formułę lub na receptę powinno być nazywane "wyrażeniem"
var result = 5*5; var res2 = a*x;
Ale oczywiście-w wyniku, które również stały si to również może być dosłowne w rzeczywistości ..
to jak zdobyć przynajmniej mnie ..
To właśnie o warunkach - Podobnie jak w java istnieją metody, "języki C" są funkcjami itd. - w znaczeniach są to te same rzeczy, więc to zależy tylko od limitu, co będzie w ogóle tolerować: D
Możesz chcieć wskazać jakiego języka używasz. –
I prawdopodobnie, którego parsera/kompilatora używasz. Inteligentny powinien automatycznie przekształcić '5 * 5' na' 25' jeśli działa z operacjami matematycznymi. –
@AndrewGrimm Wydaje mi się, że jest to oczywiste, że jego Java rozważa tag #java. – Craig