Dart语言学习日记(一)

Dart语言程序设计基础

特点

Dart语言采用单线程模式,不存在资源竞争和状态同步的问题,使用Dart语言提供的asyncawait异步工具实现异步操作。
Dart语言中一切皆为对象,所有对象都是一个类的实例,所有类都继承于Object类。
Dart语言是强类型编程语言,一旦确定了变量的类型,就不可以改变变量的类型,但Dart语言允许弱类型语言式(数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值)的编程,也就是变量的类型不一定要在使用前声明。

倪红军老师网课学习网址

基本语法

// 所有Dart语言以main作为入口函数
void main(){
};

变量

在Dart语言中,声明变量可用var、Object、dynamic

  • 变量名称必须由数字、字母、下划线组成
  • 变量名开头不能是数字
  • 变量名不能是保留字或关键字
  • 变量名区分大小写
1.var关键字
//1.用var定义变量
void main(){
  var i = 2;//2是int类型数据,i指定了为int类型
 // i = '200'; 本行会出现报错
 //'200'属于字符串,i已指定存放类型只能放int型 
  print(i);
}
void main(){
  var j;  //定义变量时,若未初始化,该变量的数据类型则是可变的
  j = '200'; //'200'属于字符串,i只能放int型
  print(j);
}
2.Object关键字

在这里插入图片描述在这里插入图片描述

3.dynamic关键字

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
以上变量的声明属于隐式声明(并没有指定变量的数据类型)

4.显示声明指定类型的变量
  int age;//声明一个整数类型的变量age
  double d = 2;
  //age = d;本行将会报错
  String s = "This is a test";

常量

常量名的命名规则与变量名一样,可以用final或const定义常量,使用他们定义常量时必须初始化,初始化后的常量是只读的,不可变的。

const pi = 3.1415;
final g = 9.8;

使用const和final定义常量时可以声明数据类型

const double pi = 3.1415;
final String myName = "test";
  1. 当const在“=”左边时声明常量必须赋值且不允许再修改,右边声明的值必须满足在编译时是常数。
  2. 当const在“=”右边时是一个修饰值,表明右边对象整个状态值在编译时完全确定,并且对象被冻结完全不可变。
  const c = 10;
  const c1 = c; //编译时常量,c本身也为常量
  const c2 = 5*7;
//报错
const date = DateTime.now();//不满足编译时为常量,而是变化的
//final则不要求编译时为常量
int mm = 100;
final y = mm;
// const t = mm; 报错,mm为变量

数据类型

1.Number(数值类型)

Dart语言中包括int(整数型)和double(浮点型)两种数据类型。

var dec = 1;			//十进制整数
var hex = 0xDEADBEEF	//十六进制整数
var height = 1.1;		//十进制浮点数
var weight = 1.42e5;	//表示1.42*10^5
double z = 1;			//int类型的字面量赋值给double类型的z
print(z);				//打印输出1.0
int z = 1.0;			//报错

Number类型的数据包括+、-、*(×)、/(÷)等4种基本运算及abs()、ceil()、floor()等常用方法(函数)。

abs()方法:
求绝对值

ceil()方法:

var height = 67.3;//double类型
int z2 = height.ceil();
print("z2:$z2");//将大于或等于67.3的最小整数值给z2

输出:
I/flutter ( 2339): z2:68

floor()方法:

var height = 67.3;//double类型
int z3 = height.floor();
print("z3:$z3");//将小于或等于67.3的最大整数值给z3

输出:
I/flutter ( 2339): z3:67
2.String(字符串类型)

String类型的数据通常需要通过对字符串的处理后才能实现一些功能。String类型通常用来存储一些名称、地址等类型的信息,字符串往往通过使用单引号(’ ')或双引号(" ")来定义。

一般以“驼峰命名法”命名变量,如:

String myName = "Dart小白";

当字符串中包含单引号或双引号时,定义方法:

String info = 'It\'s';//使用转义符(\)
或
String info2 = "It's a dog!!";//使用双引号
(String info2 = 'It"s a dog!!';)

输出:
I/flutter ( 2339): It's
I/flutter ( 2339): It's a dog!
I/flutter ( 2339): It"s a dog!!

字符串的拼接算法(+):

String a1 = 'i ';
String a2 = 'am ';
String a3 = 'student';
String s = a1+a2+a3;
//或
//String s = "$a1$a2$a3"; 引用变量
//String s2 = "$a1$a2\n$a3";
print(s);
print(s2);

s的输出:
I/flutter ( 2339): i am student

s2的输出:
I/flutter ( 2339): i am 
I/flutter ( 2339): student

字符串的常见方法:

String str = "aBcdef,aghijkl ";
//字符串下标从0开始计数
print(str.indexOf('f'));//返回指定字符第一次出现的位置
print(str.lastIndexOf('a'));//返回指定字符最后一次出现的位置
print(str.substring(1,5));//返回字符串两个指定索引号之间的字符
//1表示下标为1,而5则表示下标为5-1,不包括下标为5的字符
//substring(m,n):取子串,从下标为m开始,到下标为n-1结束
print(str.split(','));//将字符串按指定字符分割为字符串数组
print(str.trim());//去掉字符串前后空格字符
print(str.toUpperCase());//全部转化为大写
print(str.toLowerCase());//全部转化为小写
print(str.startsWith("a"));//判断是否以指定字符串开头
print(str.startsWith("a",7));
//判断指定下标位置是否以指定字符串开头
print(str.endsWith(' '));//判断字符串是否以指定字符串结尾
print(str.contains('Bcd'));//判断字符串中是否包含指定字符串
print(str.replaceAll('aB', '1212'));
//将字符串中的字符用指定字符替换
print(str.compareTo('aBc'));
//将字符串与指定字符串进行比较
//返回值为1则表示字符串大于指定字符串,为0表示相等,-1则表示小于
print(str.compareTo('bBc'));
//因为a与b比较a小于b,所以返回-1

输出:
I/flutter ( 2339): 5
I/flutter ( 2339): 7
I/flutter ( 2339): Bcde
I/flutter ( 2339): [aBcdef, aghijkl ]
I/flutter ( 2339): aBcdef,aghijkl
I/flutter ( 2339): ABCDEF,AGHIJKL 
I/flutter ( 2339): abcdef,aghijkl 
I/flutter ( 2339): true
I/flutter ( 2339): true
I/flutter ( 2339): true
I/flutter ( 2339): true
I/flutter ( 2339): 1212cdef,aghijkl
I/flutter ( 2339): 1
I/flutter ( 2339): -1

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LuoYaNiiii

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值