美文网首页
Dart 学习笔记(一):基本数据类型和运算符

Dart 学习笔记(一):基本数据类型和运算符

作者: love断鸿 | 来源:发表于2019-12-09 15:30 被阅读0次

最近这几天看了下Dart的数据类型和运算符, 总的来说和其他语言差别不大,先简单的记录一下, 以后我会抽时间着重的介绍

变量

Dart 是脚本语言 可以不预先定义变量类型, 可以类型推断

var str = 'string' // var修饰的变量总动识别变量类型
String str = 'string'// 直接指定变量类型
// 1: 注意 写了var 和类型不要同时写 同时写就会报错
// 2: 用var 定义变量的时候 会自动推断类型(用 String 和int 定义变量的时候 会进行类型校验) 
// 3: 使用var定义变量;可以不指定初始值,默认为null;可以给var定义的变量赋不同类型的值;
// 4: 个人建议在编码的时候如果可以确定变量类型,还是不要用var
注意:var在赋值之后 变量类型就确定了,不可更改。如果不确定变量类型是不是唯一,那么需要用dynamic或Object来修饰
Object name1 = 1;// 也可以用dynamic来修饰
name1 = 'ss'; //如果用var修饰 这里会报错
print(name1);
这里凸显了Dart的动态性, 用dynamic或Object修饰的变量可以更改类型

常量

定义后不可被更改,用const和final初始化

final age = 20;
// 或
const age = 170;

// 两者区别:
// 1: const是编译时常量,在编译时值就要确定下来
//    final运行时常量
// 2: 只初始化一次(懒加载) 这个值可以在运行时确定
var num = 10;
final num1 = num;// 这样修饰是可以的, 这时num是变量 而num1是常量
// const num1 = num;  这样是不行的
num = 20 // 不会报错
num1 = 30 // 会报错
// 如果把num1 = 30 注释掉 程序可以正常运行
// 然后
 print(num);
 print(num1);
可以得到
num = 20
num1 = 10
// 可见 final的意思是: 将变量的num的值赋常量num1, 而且这一步是在运行时进行的

数组(List)

初始化
var li1 = ['111', '111', '111']
// 或者
var l2 = new List();
l2.add('张三');
l2.add('李四');
l2.add('王五');
print(l2);
print(l2[2]);

maps 类型 (类似json)

 var preson = {
    'name' : '张三',
    'age' : 20,
    'work' : ['iOS', 'Java']
   };
 print(preson);
 print(preson['name']);

类型转换

//类型转换 (num 为 int或double)
// string -> num 
var price = "123";
var myNum = double.parse(price);

// num -> string
var num = 123;
var str = num.toString();

is 可以判断变量是那种类型

var str = "123";

if(str is String) {
}

if(str is int) {
}

各种运算符

运算符在各种语言里都大同小异,还是简单的记录下吧

算术运算符
int a = 1;
int b = 2;
//加
print(a + b);
//减
print(a - b);
//乘
print(a * b);
//除
print(a / b);
//取整
int result = a ~/ b;
print(result);
//取余
print(a % b);
//自增
//前++,先给函数打印,后自增
print(a++);
//后++,先自增,再给函数打印
print(++a);
//先给函数打印,再自减
print(a--);
//先自减,再给函数打印
print(--a);
复合运算符
a += 2;
print(a);

a -= b;
print(a);

a *= b;
print(a);

print(a /= b);
  
print(a %= b);
关系运算符
//判断是否相等
print(a == b);
//判断是否不相等
print(a != b);
//是否大于
print(a > b);
//是否小于
print(a < b);
//是否大于等于
print(a >= b);
//是否小于等于
print(a <= b);

//双等号判断内容相等
String strA = '123';
//String strB = '321';
String strB = '123';
print(strA == strB);
逻辑运算符
bool isTrue = true;
//取反
print(!isTrue);

//并且
bool isFalse = false;
print(isTrue && isFalse);

//或者
print(isTrue || isFalse);

//日常取反用途
String str = "";
print(!str.isEmpty);
三目运算符
//int gender = 0;
int gender = 1;
//String str = gender == 0 ? 'Male' : 'Female';
//还可以加上插值表达式
String str = gender == 0 ? 'Male=$gender' : 'Female=$gender';
print(str);
最后介绍下Dart当中比较有特色的?? 和 ??=
// ??表达式,如果??前面的表达式为null,则使用??后面的值
String a;
//String a = 'Dart';
String b = "Java";
//a为null,所以会使用b的值返回
String c = a ?? b;
print(c);
// ??=  和?? 差不多
int b
b ??= 23;
// 如果b没被赋值 则把23赋给b

备注:以上关于运算符的部分是借用别人的文章

https://www.jianshu.com/p/7a95badee480

相关文章

  • 原生js

    原生JS学习笔记1——基本数据类型和运算符 js的背景知识介绍,js的引入方式,js的变量及运算符 原生JS学习笔...

  • Dart 学习笔记(一):基本数据类型和运算符

    最近这几天看了下Dart的数据类型和运算符, 总的来说和其他语言差别不大,先简单的记录一下, 以后我会抽时间着重的...

  • 第九节: Dart 中的库/自定义库/内置库/第三方库

    Dart 语法学习目录 第一节: Dart 语法了解,认识变量,常量,数据类型第二节: Dart 操作符(运算符)...

  • 第七节: Dart中抽象类abstract/接口implemen

    Dart 语法学习目录 第一节: Dart 语法了解,认识变量,常量,数据类型第二节: Dart 操作符(运算符)...

  • Dart运算符

    dart运算符和其他语言基本相似 1、算术运算符【+ (加)】、【— (减)】、【* (乘)】、【/ (除)】、【...

  • Flutter开发之Dart的数据类型02

    原文博客地址: Flutter开发之Dart的数据类型02 这几篇文章都是在学习Dart过程中所记录的学习笔记, ...

  • Flutter开发之Dart的数据类型01

    原文博客地址: Flutter开发之Dart的数据类型01 这几篇文章都是在学习Dart过程中所记录的学习笔记, ...

  • 2-2-1 简介

    数据类型和运算符欢迎学习数据类型和运算符课程!你将学习: 数据类型:整型、浮点型、布尔型、字符串、列表、元组、集合...

  • Dart基础语法

    Dart基础语法 基本数据类型 Dart 属于强类型语言(在Dart2.0之前,Dart是一门弱类型语言。2.0以...

  • Typescript 学习笔记

    TypeScript 学习笔记 一、基本数据类型 基本数据类型与 JavaScript 一致,包含了 number...

网友评论

      本文标题:Dart 学习笔记(一):基本数据类型和运算符

      本文链接:https://www.haomeiwen.com/subject/conxgctx.html