任何計算機語言都有'表達'和'陳述'。在概念上,差異是什麼?關於表達和陳述的語言概念
回答
從wikipedia摘自:
在大多數語言中,陳述與該 語句表達對比不返回結果,並僅僅因爲它們 副作用執行,而表達式總是返回結果並且經常做 根本沒有副作用。在命令式編程語言中,Algol 68是少數幾個可以返回結果的語句之一。 在語言,其結構必須和功能的風格,如 Lisp的家庭,表達式和語句之間的區別並不 發:即使在連續的上下文中執行表達式只是爲了 其副作用並且其返回值不使用被認爲是 「表情」。在純函數式編程中,沒有 語句;一切都是一種表達。
表達式具有值,而語句不具有。如果你可以將它作爲參數傳遞給一個函數,那它就是一個表達式。如果你不能,這是一個聲明。 C派生語言中的控制流構造通常是語句(不能將'if {}'塊作爲函數參數傳遞)。因此,這些語言傾向於爲「if」(如三元運算符)提供表達形式。當然,許多函數式語言的重點在於一切都有價值,而且這些函數是一流的值,這意味着一切都是表達式。語句通常以命令式語言出現,您希望編寫不一定返回值的命令。有關詳細信息,請參閱鏈接。
http://lambda-the-ultimate.org/node/1044
而StackOverflow的這個問題也可以幫到你。
Expression Versus Statement
statements
通常沒有價值。 expressions
通常確實有價值。
這是語言如Ruby或二郎說的東西提供一個值,如if .. end
結構常可見:
> foo = if 1 then "hello" else "goodbye" end
=> "hello"
> foo
=> "hello"
1> Foo = if 1 =:= 1 ->
1> hello;
1> true ->
1> goodbye
1> end.
hello
2>
許多語言不會允許你使用lvalue = if ...
。
語言的「語句」實際上是計算機系統執行某些操作的指令。
語言的「表達式」是運算符和操作數的組合,如z = x + y。粗略地說,我可以說語言表達本質上是數學的。
每種語言的「表達」都是語言的「語句」,但每種語言的「語句」不是語言的「表達」。
語句不一定是表達式的子集;你可以想象一種語言,只要寫'a + b'是非法的,不用說'c = a + b'。 – Dougal
- 1. Python語言概述
- 2. 各種語言的關鍵編程概念和術語
- 3. TYPO3多語言概念
- 4. 關於C語言的這個陳述的困惑?
- 5. 關於scala語言的多線程概念
- 6. 關於LISP編程語言的綁定概念
- 7. 關於RDBMS概念
- 8. R:基於概率的真/假陳述
- 9. Starting nodejs關於語言結構的任何概述
- 10. 關於封裝的概念
- 11. 描述謂語用C++概念TS
- 12. C語言中的線程概念#
- 13. 掛毯中的多語言概念5
- 14. 表達關於Isar中指數的簡單陳述性證明
- 15. OCaml。關於如果陳述
- 16. 關於框架(概念)
- 17. 關於java-RMI概念
- 18. 學習編程語言概念
- 19. 等待陳述與表達
- 20. 「幻數」的概念是否從語言變爲語言?
- 21. 關於編程和進入的概述
- 22. Eclipse RCP術語和概念
- 23. 關於JSF表達式語言
- 24. 什麼語言有「保護」關鍵字或概念?
- 25. Ruby語言cheatsheet /海報/參考/概述?
- 26. 描述用正則表達式語言
- 27. 關於JavaScript中的原型概念
- 28. 關於接口概念的說明
- 29. 關於Mulesoft的一些概念問題
- 30. 關於面向對象的概念
關鍵是在表達式上下文中不允許使用語句。並且注意並不是所有的語言都有語句。 –
我不明白爲什麼這裏有這麼多人回答問題,而不是回答問題。 – Klaim
@Klaim也許是因爲它很難downvote評論:) –