当前位置: 首页 > news >正文

叫人做网站后不提供源码wordpress免费建站

叫人做网站后不提供源码,wordpress免费建站,免费的个人简历模板电子版下载,国内购物网站排名Dart基本语法 文章目录Dart基本语法程序入口变量数据类型is关键字类型判断Dart常量const和final变量的命名规则运算符类型转换循环结构集合详解list集合集合常用属性集合常用方法Set集合Map类型详解常用属性常用方法循环遍历的方法List循环遍历(Set用法和List相同)Map循环遍历程…

Dart基本语法

文章目录

      • Dart基本语法
        • 程序入口
        • 变量数据类型
        • is关键字类型判断
        • Dart常量const和final
        • 变量的命名规则
        • 运算符
        • 类型转换
        • 循环结构
        • 集合详解
          • list集合
            • 集合常用属性
            • 集合常用方法
          • Set集合
        • Map类型详解
          • 常用属性
          • 常用方法
        • 循环遍历的方法
          • List循环遍历(Set用法和List相同)
          • Map循环遍历

程序入口

main() {print('你好 dart');
}
//方法没有返回值
void main() {print('你好 dart');
}

变量数据类型

dart是一个强大的脚本语言,语法类似C,所有的代码都是由变量与方法组成,程序控制结构也包括了顺序结构,判断分支结构与循环结构。

  • var
    变量定义可以通过var关键字,不预先定义变量类型,会自动进行类型判断。例如定义var num = 12;系统会自动将num判定为int类型。
main() {var str = 'hello';var num = 12;print(str);print(num);
}

在这里插入图片描述

  • dynamic
    Dart直接支持动态类型,只需要使用dynamic来声明一个变量即可。
main() { 
dynamic str = "hello"; 
print(str); 
str = 20; 
print(str); 
} 

在这里插入图片描述

  • 数值型:int和double

  • 字符串:String
    字符串可以用单引号’’,也可以用双引号"",和其它语言一样,双引号可以内嵌表达式,表达式以$开头,而单引号的字符串不支持。

main() {var str1 = "this is str1";var str2 = "this is str2";print(str1);print(str2);String str3 = "this is str3";print(str3);//三个单引号或三个双引号可以打印多行String str4 = '''this is str4this is str4this is str4''';print(str4);//字符串拼接的两种方法print(str1 + str2);print("$str1 $str2");
}
  • 逻辑值:bool,只有true和false两个取值。
  • 数组类型:List
    Dart用范型List来表示数组,同时也可以当成列表来使用。
    通过[]创建的集合长度是可变的
main() {
//创建集合var l1 = ["张三", 20, true];print(l1);print(l1.length);//改变集合长度(只能变小,变大会报错)l1.length = 2;print(l1.length);//指定集合中数据类型为Stringvar l2 = <String>["张三", "李四"];l2.add("王五");print(l2);//创建一个空集合var l3 = [];print(l3);print(l3.length);l3.add("张三");print(l3);// var l4 = new List(); //在新版本的Dart里被废弃不能使用//通过List.filled(集合长度, 数据默认值)创建的集合长度不能修改var l5 = List.filled(2, "");var l6 = List<String>.filled(2, "");//修改集合中数据l5[0] = "张三";print(l5);
}

在这里插入图片描述

  • 集合类型:Set,跟其他语言一样,其中的元素值只能有一个,不可重复。
  • Map:key-value映射,使用方式跟JS中的JSON类型类型
main() {var person = {"name": "张三","age": 20,"work": ["程序员", "外卖员"],};print(person);print(person["age"]);print(person["work"]);var person1 = new Map();person1["name"] = "李四";person1["age"] = 22;person1["work"] = ["程序员", "外卖员"];print(person1);
}

在这里插入图片描述

is关键字类型判断

main() {var str = '123';if (str is String) {print('是String类型');} else if (str is int) {print('是int类型');} else {print('其他类型');}
}

在这里插入图片描述

Dart常量const和final

main() {//const常量const PI = 3.14159;print(PI);//final常量final PI1 = 3.14159;print(PI1);final a = new DateTime.now();print(a);/*const a = new DateTime.now();会报错*/
}

const和final区别:final可以开始不赋值,只能赋一次;final不仅由const编译时常量的特性,最重要的是它是运行时常量,并且final是惰性初始化,即在运行时第一次使用前才初始化。

变量的命名规则

  • 变量名称必须由数字,字母,下划线,美元符($)组成
  • 标识符开头不能是数字
  • 标识符不能是保留字和关键字
  • 变量名称区分大小写

运算符

  • 算术运算符(+,-,*,/,%,~/(取整)
  • 关系运算符(==,!=,>,<,>=,<=)
  • 逻辑运算符(!,&&,||)
  • 赋值运算符
    – 基础赋值运算符(=,??=
    在赋值运算里面,如果++写在前面,这时候先运算在赋值,++写在后面,先赋值在运算。
    – 自增自减运算符(++,–)
    – 复合运算符(+=,-=,*=,/=,%=,~/=)
    ??= 如果变量没有赋值才进行赋值,否则不进行赋值
main() {int b;  //这种写法在编译运行时会报错b ??= 23;print(b);
}

在这里插入图片描述

main() {var a = 10;var b;a ??= 15;b ??= 23;print(a);print(b);
}

在这里插入图片描述

  • 条件表达式
    if else ; switch case ;
    三目运算符(b?x:y):如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。
    ??运算符: 如果变量没有赋值才进行赋值,否则不进行赋值
main() {var a;var c = 15;var b = a ?? 10;var d = c ?? 20;print(b);print(d);
}

在这里插入图片描述

类型转换

  • Number和String类型转换

String类型转换为Number类型 int.parse()

main() {String str = '123';String str1 = '123.1';String str2 = '';var myNum = int.parse(str);var myNum1 = double.parse(str1);print(myNum is int);print(myNum1 is double);//判断异常,保证不能正常转换时程序依然能够运行try {var myNum2 = int.parse(str2);print(myNum2);} catch (err) {print(0);}
}

在这里插入图片描述

Number类型转换为String类型 toString()

main() {var myNum = 12;var str = myNum.toString();print(str is String);
}

在这里插入图片描述

  • 其他类型和Booleans类型转换
    isEmpty():判断字符串是否为空
main() {var str = '';if (str.isEmpty) {print('str空');} else {print('str不为空');}var myNum = 123;if (myNum == 0) {print('0');} else {print('非0');}var myNum1;if (myNum1 == null) {print('空');} else {print('非空');}var myNum2 = 0 / 0;if (myNum2.isNaN) {print('NaN');}
}

在这里插入图片描述

循环结构

  • for循环
main() {List list = [{"title": "新闻111"},{"title": "新闻222"},{"title": "新闻333"}];for (int i = 0; i < list.length; i++) {print(list[i]["title"]);}List list1 = [{"create": "国内","news": [{"title": "国内新闻1"},{"title": "国内新闻2"},{"title": "国内新闻3"},]},{"create": "国际","news": [{"title": "国际新闻1"},{"title": "国际新闻2"},{"title": "国际新闻3"},]}];for (var i = 0; i < list1.length; i++) {print(list1[i]["create"]);print("----------------");for (var j = 0; j < list1[i]["news"].length; j++) {print(list1[i]["news"][j]["title"]);}}
}

在这里插入图片描述

  • while(){}
  • do{}while();
    do–while和while区别,第一次循环条件不成立时,不管满不满足条件,do–while都会执行一次。
  • continue和break关键字
    continue跳出当前循环,继续进行下一次循环,break直接跳出循环,不再执行循环。

集合详解

list集合
集合常用属性

length 长度
isEmpty 判空
isNotEmpty 判断非空
reversed 对集合倒序排序

main() {List list = ['香蕉', '苹果', '西瓜'];print(list.length);print(list.isEmpty);print(list.isNotEmpty);print(list.reversed); //注意转换后得到的不是集合var newList = list.reversed.toList();print(newList);
}

在这里插入图片描述

集合常用方法
  List list = ['香蕉', '苹果', '西瓜'];

add 增加

 list.add('桃子'); //增加一个数据

addAll(一个集合) 拼接数组

  list.addAll(['葡萄', '哈密瓜']); //拼接数组

indexOf(value) 查找 传入具体值(返回下标位置,不存在返回-1)

list.indexOf('葡萄')

remove(索引值) 删除 传入具体值

list.remove('香蕉');

removeAt(索引下表) 删除 传入索引值

  list.removeAt(2);

fillRange(start,end) 修改下标start到end-1的值为空
fillRange(start,end,value) 修改下标start到end-1的值为value

  list.fillRange(1, 3,'aaa');

insert(index,value) 指定位置下标index前插入数据

  list.insert(1, 'bbb');

insertAll(index,list) 指定位置下标index前插入List

  list.insertAll(1, ['ccc', 'ddd']);

jion(s) List转化为字符串,集合中的元素以s连接

  var str = list.join('-');

split(s) 字符串以s分割转化为List,分割的每部分为集合的一个元素

  str = '苹果-ccc-ddd-bbb-aaa-aaa-哈密瓜';var list1 = str.split('-');
main() {List list = ['香蕉', '苹果', '西瓜'];list.add('桃子'); //增加一个数据print(list);list.addAll(['葡萄', '哈密瓜']); //拼接数组print(list);print(list.indexOf('葡萄'));list.remove('香蕉');list.removeAt(2);print(list);list.fillRange(1, 3, 'aaa');print(list);list.insert(1, 'bbb');print(list);list.insertAll(1, ['ccc', 'ddd']);print(list);var str = list.join('-');print(str);var list1 = str.split('-');print(list1); 
}

在这里插入图片描述
toList() 其他类型转换为List

main() {List list = ['香蕉', '苹果', '西瓜', '香蕉', '苹果', '香蕉', '西瓜'];var s = new Set();s.addAll(list);print(s);print(s.toList());
}

在这里插入图片描述

Set集合

Set是没有顺序且不能重复的集合,所以不能通过索引去获取值,它的主要功能是去除数组重复内容

//验证Set集合不存在重复数据
main() {var s = new Set();s.add('香蕉');s.add('苹果');s.add('苹果');print(s);
}

在这里插入图片描述
list集合去重

main() {List list = ['香蕉', '苹果', '西瓜', '香蕉', '苹果', '香蕉', '西瓜'];var s = new Set();s.addAll(list);print(s);print(s.toList());
}

在这里插入图片描述

Map类型详解

创建Map两种方法

main() {var person = {"name": "张三","age": 20,};print(person);var m = new Map();m["name"] = "李四";print(m);
}

在这里插入图片描述

常用属性
  var person = {"name": "张三","age": 20,};

keys 获取所有的key值

person.keys
//还可以转换为集合
person.keys.toList()

values 获取所有的value值

person.values
//还可以转换为集合
person.values.toList()

isEmpty 是否为空
isNotEmpty 是否不为空

main() {var person = {"name": "张三","age": 20,};print(person.keys);print(person.keys.toList());print(person.values);print(person.isEmpty);print(person.isNotEmpty);
}

在这里插入图片描述

常用方法

addAll({…}) 合并映射 给映射内增加属性

  person.addAll({"sex": "男","work": ['敲代码', '送外卖'],});

remove(key) 删除指定key的数据

  person.remove("sex");

containsKey 查看映射内的键 返回true/false

person.containsKey("sex")

containsValue 查看映射内的值 返回true/false

person.containsValue("张三")
main() {var person = {"name": "张三","age": 20,};person.addAll({"sex": "男","work": ['敲代码', '送外卖'],});print(person);person.remove("sex");print(person);print(person.containsKey("sex"));print(person.containsValue("张三"));
}

在这里插入图片描述

循环遍历的方法

List循环遍历(Set用法和List相同)
List list = ['香蕉', '苹果', '西瓜'];

for循环

for (var i = 0; i < list.length; i++) {print(list[i]);}
  for (var item in list) {print(item);}

for each

  list.forEach((value) {print("$value");});

map方法修改集合数据

   //第一种写法var newList = list.map((e) => e * 2);//第二种写法var newList1 = list.map((value) {return value * 3;});//注意返回的不是集合,需要转为集合newList.toList();

where返回满足条件的元素组成的集合

//返回大于三的元素组成的集合var newList2 = list.where((element) => element > 3);var newList1 = list.where((value) {return value > 3;});newList1.toList();

any 集合中存在满足条件的元素就返回true

  var newList2 = list.any((element) => element > 3);var newList1 = list.any((value) {return value > 3;});

every 集合中所有元素都满足条件返回true

  var newList2 = list.every((element) => element > 3);var newList1 = list.every((value) {return value > 3;});
main() {List list = [2, 3, 4];for (var i = 0; i < list.length; i++) {print(list[i]);}for (var item in list) {print(item);}list.forEach((value) {print("$value");});var newList = list.map((e) => e * 2);var newList1 = list.map((value) {return value * 3;});print(newList);print(newList1);var newList2 = list.where((element) => element > 3);print(newList2.toList());var f = list.any((element) => element > 3);print(f);var f2 = list.every((element) => element > 3);print(f2);
}

在这里插入图片描述

Map循环遍历

Map的foreach方法比List多一个参数

main() {Map person = {"name": "张三", "age": 20};person.forEach((key, value) {print("$key---$value");});
}

在这里插入图片描述

http://www.lbrq.cn/news/2723005.html

相关文章:

  • 网站建设尚品58和百度哪个推广效果好
  • 网站一般多长时间自己做网站设计制作
  • 金华网站推广广西网站建设制作
  • 东莞比较出名的网站建设公司淘宝指数官网的网址
  • 网站开发毕业答辩演讲稿范文互联网金融营销案例
  • 如何修改用织梦做的网站的模板seo辅助工具
  • wordpress直接上传视频网站吗热门国际新闻
  • 电商网站有哪些特色环球网最新消息
  • wordpress 摘要不显示网站优化推广服务
  • 企业建站系统营销吧tt团队网络营销与策划
  • app在线开发制作平台seo优化工具大全
  • java都是做网站吗网络营销方式都有哪些
  • 孝感网站制作免费做网站的平台
  • 网站首页引导页模版口碑营销
  • 龙岗网站建设需要考量些什么深圳网络推广网络
  • 企业建站公司怎么创业淘宝权重查询入口
  • 网站 建设 价格表郑州网站关键词排名
  • 湖北中英双语网站建设安装百度到桌面
  • 如何做网站迁移网站分析报告范文
  • 淘宝详情页设计优化关键词推广
  • 简述企业建网站的步骤什么平台推广效果最好
  • 做再生资源的网站有哪些怎么查找关键词排名
  • 毕业设计网站建设软件项目大数据培训课程
  • app制作免费trinseo公司
  • 做企业网站需要准备什么网站推广的常用方法有哪些
  • 做网站被骗首付款怎么报案seo技术培训
  • 重庆网站优化排名推广推广手段
  • 怎么查网站的外链数量网络营销案例分享
  • 有什么可以做兼职的网站吗百度秒收录技术
  • 网站建设有哪些方法百度快照怎么做
  • yolo安装
  • DevEco Studio 6.0.0 元服务页面跳转失败
  • PostgreSQL 免安装
  • SVN提交服务器拒绝访问的问题
  • 云计算-实战 OpenStack 私有云运维:服务部署、安全加固、性能优化、从服务部署到性能调优(含数据库、内核、组件优化)全流程
  • 机器学习处理文本数据