Dart中表达式和语句之间的区别?

Dart中表达式和语句之间的区别?,dart,expression,dart-pub,Dart,Expression,Dart Pub,由于不同的语言对表达式和语句有不同的定义,因此在Dart中它们之间有什么区别?我对Dart还是新手,但有着以前的知识(以及阅读Dart语言教程): 表达式通常计算为某个值,例如,当使用条件表达式时,条件?expr1:expr2的值为expr1或expr2 语句没有值,或者通常不直接更改值 语句包含表达式,但表达式不能包含语句 以上是我对我试图为你们简化的要点的解释,在阅读时发现是这样的: Dart既有表达式(有运行时值)也有语句(没有)。例如,条件表达式条件?expr1:expr2的值为ex

由于不同的语言对表达式和语句有不同的定义,因此在Dart中它们之间有什么区别?

我对Dart还是新手,但有着以前的知识(以及阅读Dart语言教程):

  • 表达式通常计算为某个值,例如,当使用条件表达式时,
    条件?expr1:expr2
    的值为
    expr1
    expr2
  • 语句没有值,或者通常不直接更改值
语句
包含
表达式
,但
表达式
不能包含语句

以上是我对我试图为你们简化的要点的解释,在阅读时发现是这样的:

Dart既有表达式(有运行时值)也有语句(没有)。例如,条件表达式<代码>条件?expr1:expr2的值为
expr1
expr2
。将其与没有值的if-else语句进行比较。语句通常包含一个或多个表达式,但表达式不能直接包含语句

来自维基百科:

在数学中,表达式或数学表达式是符号的有限组合,根据上下文的规则,这些符号形式良好。数学符号可以指定数字(常数)、变量、运算、函数、括号、标点符号和分组,以帮助确定运算顺序和逻辑语法的其他方面

飞镖也是一样

在这种情况下,语句可以描述为表达式和可能的其他符号的组合,这些符号是正确表示具体语句所必需的

在Dart中,语句可以为空,这意味着该语句不包含任何表达式。空语句可以用格式良好的符号表示,也可以由上下文确定

if-else
语句的示例(伪代码)

if(表达式){statement(s)}else{statement(s)}

简短回答 表达式是值,语句起作用

例子 如果你能看到例子,这就更有意义了

表达 表达式在运行时具有值

  • 42
  • true
  • hello
  • 1+1
  • x
  • myObject
  • myInt+1
  • k++
  • p>0
  • 条件?expr1:expr2
  • 'hello'.toUpperCase()
  • myObject.toString()
  • myObject.someMethod()
  • myObject?.someProperty?.someMethod()
  • myString.isEmpty
  • [1,2,3]
  • […列表1]
  • {…a,…b}
声明 语句执行某些操作,但在运行时本身没有值。语句不是表达式,但可以包含表达式

  • myInt=1
  • print('hello')
  • 返回null
  • if(name!=null){return name;}else{return'Guest';}
  • for(var i=0;i<5;i++){message.write('!');}
  • break
  • while(!isDone()){doSomething();}
  • 产生k++
  • assert(text!=null)
  • throw FormatException('至少需要1个节')
  • void distance to(Point other)=>throw UnimplementedError()
注意:这里的大多数示例都是通过搜索关键字表达式语句


我认为不同的语言之间没有太大的差异。另请参见vs Is
int a=10+20
表达式或语句?@iDecode,因为
int a=10+20执行某些操作(声明一个整数变量,然后为其赋值),它是一条语句。右侧的
10+20
是一个表达式(值为
30
)。