2015-09-04 85 views
5

我知道例如'5'char類型的文字,但是5 * 5是文字?這是表達式,但它具有固定值。5 * 5是文字還是表達式?

+7

你可能希望指出您正在使用哪種語言。 –

+1

而且可能是你正在使用的解析器/編譯器。如果使用數學運算,智能的應該自動將'5 * 5'轉換爲'25'。 –

+1

@AndrewGrimm我想它是一種明顯的Java考慮#java標記。 – Craig

回答

1

我不認爲你可以稱它爲文字。有些編譯器可能會像處理文字一樣對待它,請參閱有關您正在使用哪種語言的評論。

12

Java Language Specification §15.28中所述,這是一種稱爲「編譯時常量表達式」的特殊情況。這不是文字。

+2

無法從字節碼中判斷這是寫成「5 * 5」還是「25' + 1。 –

1

「文字」是一個語法術語,而不是語義。這是表示恆定價值的基本構建塊。

儘管按規範5 * 525的含義完全相同,但在語法上第一個是包含兩個文字和一個運算符的二進制表達式,而第二個只是一個文字。

0

我不確定,但不是說那些條款的工作是這樣的?

  • ,而你使用一些值來定義「在 直路」正是變量的值,它應該被稱爲「文字」

    var num =5; var stringLabel = "someText";

  • ,而你使用一些公式或處方它應該被稱爲「表達」

    var result = 5*5; var res2 = a*x;

結果課程 - 也不斷SI也可以是實際上字面..

那至少我怎麼得到它..的

這只是有關條款 - 也像在java中有方法,「C語言」是函數等 - 在意義上它也是相同的東西,所以它只取決於極限,你會容忍什麼:D

相關問題