Dart基础入门(二)运算符及条件表达式_stay hungry stay foolish-程序员宅基地

技术标签: Dart入门  Flutter开发语言入门  Dart运算符  Dart语言入门  Dart  Dart条件表达式  

前言:

接下来继续我们的Dart入门学习,上一篇给大家介绍了Dart中的变量,常量以及数据类型,相信小伙伴们都学会了,今天我给大家介绍一下Dart中的运算符及条件表达式相关知识,如果你还没看过上一篇的文章,我还是希望你能先去看看,当然我指的是那些没有任何经验的小伙伴,因为只有这样,你才能更好的理解学习接下来的知识。下面是上篇文章的地址,好了,开始今天的介绍吧。

一,运算符

1.算术运算符:

所谓算术运算符,就相当于我们数学当中加,减,乘,除,取余,取整等等,在程序语言中又基本增加自增,自减等。下面直接上代码讲解,这样比较易懂。

void main(){
    //算术运算符
    int a = 10;
    int b = 5;
    print(a + b);
    print(b - a);
    print(a * b);//乘法
    print(a / b);
    print(a ~/ b);//运算符(~/)为取除法结果的整数部分,这里结果为2
    print(a % b);//运算符(%)为取除法结果的余数,这里结果为0
    /**
    *运算符(++),本意为自增
    *当++在操作元素后(a++)时,先执行a本身,后执行++即自增,所以打印结果为a,打印完后a+1
    *当++在操作元素前(++a)时,先执行++,再执行后续操作,所以打印结果为a+1
    */
    print(a++);//由上面注释所知这时先打印a,所以结果为10,随后会进行自增,也就是接下来a会为11
    print(++a);//由上面所得,a这个时候已经是11了,随后在打印之前会自增,所以结果为12
    /**
    *运算符(--),本意为自减
    *当--在操作元素后(a--)时,先执行a本身,后执行--即自减,所以打印结果为a,打印完后a-1
    *当--在操作元素前(--a)时,先执行--,再执行后续操作,所以打印结果为a-1
    */
    print(a--);//由上面注释所知这时先打印a,所以结果为12,随后会进行自减,也就是接下来a会为11
    print(--a);//由上面所得,a这个时候已经是11了,随后在打印之前会自减,所以结果为10
}

上面比较容易犯错的时候是自增(++),自减(--)操作,我的注释已经比较详细了,希望小伙伴自己多去练练就没啥问题了。

2.赋值运算符:

所谓赋值就是给一个变量或者常量赋值,整体而言Dart中的赋值运算符和其他语言没有太多区别,下面还是以代码示例讲解吧!

//赋值运算符示例
void main(){
  int a = 10;
  int b = 5;
  b ??= a; //??= 表示被赋值变量如为空则被赋值,反之则保持当前值。
  print(b);//所以这里b还是原始值5

  /*
   *其实(a += 2)表达式就相当于a = a + 2,你可以简写成前面那样,对于小白你要知道的是
   *在程序设计语言中表达式都是从右到左赋值的,所以这里打印的结果a为12
   */
  a += 2; 
  print(a);

  a -= 2;
  print(a);//这里和上面也是一样的,就相当于a = a - 2,所以结果为10(程序是从上往下执行)

  a *= b;
  print(a);//相当于a = a * b,结果是50

  //a /= b;
  a ~/= b; //相当于a = a ~/ b,结果是10
  print(a);

  a %= b; //相当于a = a % b,结果为0
  print(a);

}

3.逻辑运算符:

所谓逻辑运算结果只有true和false,所以逻辑运算符的操作元素一定要为bool值,与其他语言没有区别,下面上代码给大家看看!

void main(){
  //逻辑运算符示例
  bool isTrue = true;
  print(!isTrue);//运算符(!)表示取反,所以这里结果为false

  bool isFalse = false;
  //运算符(&&)为短路与,在运算符前的结果为true时才会执行后面的操作,否则整个表达式执行完.
  //它需要前后都为true,结果才为true,否则就是false
  print(isTrue && isFalse);//所以这里结果为false
  //运算符(||)为短路或,前后只需有一个true,结果则为true,否则就是false。
  print(isTrue || isFalse);//所以这里结果为true
}

4.关系运算符:

所谓关系运算就是操作元素之间比较大小,相等这些,这个和其他语言也基本相同,下面还是用代码来讲解吧!

void main() {
  //关系运算符
  int a = 1;
  int b = 4;

  print(a == b);
  print(a != b);
  print(a >= b);
  print(a <= b);
  print(a > b);
  print(a < b);

  String str1 = '123';
  String str2 = '123';
  //和Java等语言不同的是,Dart中比较两个变量是否相等统一用(==)运算符,包括string类型的也是这样
  //这算是Dart的特点之一吧,所以下面结果为true
  print(str1==str2);
}

二,条件表达式

Dart中条件表达式和其他语言有相似之处,也有不同的地方,下面继续使用代码示例和大家介绍

//条件表达式示例
void main(){
  int gender = 1;
  String a = 'james';
  String b = 'kobe';
  /**
   *下面这个表达式称之为三目运算符表达式,结构为(表达式)?(表达式或者变量):(表达式或者变量)
   *?前必须是boolean类型的结果,如果结果为true则把:前面的表达式或者变量赋值给Str
   *如果结果是false则把:后面的表达式或者变量赋值给Str
   */
  String str = gender == 0 ? 'male=$a':'female=$b';
  print(str);//根据上面注释所得结果为female=kobe

  String c = a ?? b; //当??前的变量或表达式不为空时,结果为这个变量或表达式的值,反之为后面的变量
  或表达式的值.
  print(c);//所以这里打印结果为james
}

好了,今天要介绍的运算符及条件表达式就先介绍这些了,也算是入门了一下,后续我将会继续深入介绍Dart的基本知识的,希望大家继续关注,一起加油哦!对了,我在下面给出上面代码示例的git地址供大家参考学习。

https://github.com/OMGyan/dart_study/tree/master/chapter3

以上!!!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_35189116/article/details/91548291

智能推荐

通过java代码访问redis服务器_lichuangcsdn的博客-程序员宅基地

1、在pom.xml中添加jedis相关依赖&amp;lt;!-- 访问redis--&amp;gt;&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;redis.clients&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;jedis&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;2.9.0&amp;lt;/version&amp

如何解读返回函数指针的函数声明_fnxiao的博客-程序员宅基地

准确地讲,本文所涉及的内容是C++中较难理解的,本文的目的不是在于将它们解释清楚,因为这需要你循序渐进地做很多练习才可以。看下面一个例子:int (*func(bool real))(int, int)你觉得它的返回值是什么?这里就涉及到了如何理解指向函数的指针的问题了。一些来自C++教材的建议是从里向外解读这个表达式,这里所谓的里面就是func(bool real),那么剩下

Vim&Vi编辑器使用常用命令_ADreamClusive的博客-程序员宅基地

1. Vim/Vi工作模式Vim/Vi没有菜单,只有命令2. 常用命令2.1 插入命令2.2 定位命令2.3 删除命令2.4 复制和剪切命令2.5 替换和取消命令2.6 搜索和替换命令【/tcp】查找tcp【N】: 向前查找【:set noic】关闭忽略大小写【:n1, n2s/old/...

DirectX11-Sample-Tutorial02-初始化窗口-利用d3d绘制旋转立方体_狼之魂QQ的博客-程序员宅基地

完整代码看这里。Tutorial04.fx//--------------------------------------------------------------------------------------//常缓存结构变量//----------------------------------------------------------------------

linux查看ipmi端口down,Linux下使用命令行配置IPMI_叶迅的博客-程序员宅基地

为了方便遥远的另一边干嘛干嘛的,单位部署了IPMI。我好动,所以就把一些IPMI的操作记了下来,当做日记记了下来。关于IPMI,据我所知,各家服务器所用的IPMI都差不多,配置方法基本都是一样的。我接触到的IPMI配置方法有:1.BIOS配置,这个简单,直接开机进BIOS,在进阶选项里配置IPMI的IP,掩码,网关。2.开机过程中,按照提示,按ctrl + E 进入IPMI的配置界面,没有拍照,上...

精通Hibernate——数据库的事务与声明事务边界_孙悟空2015的博客-程序员宅基地

数据库事务必须具备ACID特征,分别是原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability) 声明事务包含以下内容: 1、事务的开始边界 2、事务的正常结束边界(commit):提交事务 3、事务的异常结束边界(rollback):撤销事务,使数据回到事务前的状态 数据库系统支持以下两种事务 1、自动提交模式:每个sql语句

随便推点

爬虫学习 笔记_Jason_Honey2的博客-程序员宅基地

爬虫概述知识点:了解 爬虫的概念了解 爬虫的作用了解 爬虫的分类掌握 爬虫的流程1. 爬虫的概念模拟浏览器,发送请求,获取响应网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟客户端(主要指浏览器)发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。原则上,只要是客户端(浏览器)能做的事情,爬虫都能够做爬虫也只能获取客户端(浏览器)所展示出来的数据知识点:了解 爬虫的概念2. 爬虫的作用爬虫在互联网世界中有很多的作用,比如:

只有想不到,没有做不到__shampoo_的博客-程序员宅基地

双列表的通讯录功能,本来以为不可能呢,结果做出来了。方式是使用单列的框架,adapter一个item显示两条数据同一个jsonbean的同一个字段在不同接口返回的格式不一样,通过用object对象接参数,再用gson解析,这种方式依然会出现解析异常的情况,就手动解析,尝试成功手势放大功能、画廊医华首页学科tag居中调研填空题、答题翻页效果、上传图片...

1-2 Burpsuite Proxy模块设置_山兔1的博客-程序员宅基地_burpsuite proxy设置

Burpsuite Proxy模块Burp Proxy 是Burp Suite以用户驱动测试流程功能的核心,通过代理模式,可以让我们拦截、查看、修改所有在客户端和服务端之间传输的数据。开启代理:Proxy&gt;inetrcept&gt;inetrcept is off关闭代理:Proxy&gt;inetrcept&gt;inetrcept is onBurpsuite Proxy模块 Intercept介绍Forward表示将截断的HTTP或HTTPS请求发送到服务器。服务器也会相对应的给响

对字符串中的重复字符进行删除并计数__kimcho的博客-程序员宅基地

#include &quot;stdio.h&quot;#define NUM 10int main() { char string[NUM]; int count[255]={0}; int i,j,k,num=1; gets(string); printf(&quot;未处理前期数组:%s\n&quot;,string); //对数组中的重复字符进行删除 for(i=0;string[i]!='\0';i+...

android livedata原理,Jetpack真香系列之LiveData原理解析_weixin_39717318的博客-程序员宅基地

LiveData是什么?首先贴上官方链接从字面意思上来看,这个是一个活跃,有生命的数据。那为何活跃?活跃与否从何判断?先来看这么一个类LifecycleOwner他是一个生命周期的持有者,做为一个android开发来说,这个对大家来说都不陌生,我们所熟知的Activity,Fragment,他们是有典型的生命周期特征,oncreate,onstart,onpause,onstop,ondestor...

Internet信使--模仿QQ常用功能(基于WSAAsyncSelect模型)_蔷薇理想人生的博客-程序员宅基地

Internet信使【摘要】 时下腾讯QQ即时通讯软件的应用如火如荼,只要上网的人都知道QQ,几乎得上网的人都拥有自己的QQ号甚至是多个,然而腾讯的前身是QICQ,走到今天算是一个不平凡的历史,当年她就是模仿外国的ICQ来的,由于版权原因最终才改为腾讯QQ的。如今QQ成为中国网民最喜欢的通讯软件了,当年只有很简单的功能,经过几年的发展升级变成了今天超级强大的功能了,当然还有类似的国内通讯软件,如新浪的UC软件等。90年代后期,互联网刚刚在中国开始普及的时候,国外的ICQ软件可算是全球的聊天软件的老大,比腾讯

推荐文章

热门文章

相关标签