- Android Development with Kotlin
- Marcin Moskala Igor Wojda
- 306字
- 2021-07-02 18:48:37
Statements versus expressions
Kotlin utilizes expressions more widely than Java, so it is important to know the difference between a statement and an expression. A program is basically a sequence of statements and expressions. An expression produces a value, which can be used as part of another expression, variable assignment, or function parameter. An expression is a sequence of one or more operands (data that is manipulated) and zero or more operators (a token that represents a specific operation) that can be evaluated to a single value:

Let's review some examples of expressions from Kotlin:
Expression (produces a value)
Assigned value
Expression of type
a = true
true
Boolean
a = "foo" + "bar"
"foobar"
String
a = min(2, 3)
2
Integer
a = computePosition().getX()
Value returned by the getX method
Integer
Statements, on the other hand, perform an action and cannot be assigned to a variable, because they simply don't have a value. Statements can contain language keywords that are used to define classes (class), interfaces (interface), variables (val, var), functions (fun), loop logic (break, continue) and so on. Expressions can also be treated as a statement when the value returned by the expression is ignored (do not assign a value to the variable, do not return it from a function, do not use it as part of other expressions, and so on).
Kotlin is an expression-oriented language. This means that many constructs that are statements in Java are treated as expressions in Kotlin. The first major difference is the fact that Java and Kotlin have different ways of treating control structures. In Java they are treated as statements, while in Kotlin all control structures are treated as expressions, except for loops. This means that in Kotlin we can write very concise syntax using control structures. We will see examples in upcoming sections.
- Vue.js 3.x快速入門
- Oracle WebLogic Server 12c:First Look
- Oracle 11g從入門到精通(第2版) (軟件開發視頻大講堂)
- Java高并發核心編程(卷2):多線程、鎖、JMM、JUC、高并發設計模式
- PowerCLI Cookbook
- FreeSWITCH 1.6 Cookbook
- 數據結構簡明教程(第2版)微課版
- Python Geospatial Development(Second Edition)
- WebRTC技術詳解:從0到1構建多人視頻會議系統
- Elasticsearch Server(Third Edition)
- Android開發案例教程與項目實戰(在線實驗+在線自測)
- .NET 3.5編程
- AIRIOT物聯網平臺開發框架應用與實戰
- Mastering Backbone.js
- Image Processing with ImageJ