Dart语言基础,Dart 基础

顺心
• 阅读 1673
  1. Dart 的main方法有两种声明方式
// 第一种声明方式
main(){
  print("hello world");  //打印
};
// 第二种声明方式.如果有学过typeScript或其它语言的同学都明白下面代码的意思,这个方法是有没返回值的。
void main (){
print("hello world");
}; 
  1. 注释
// 这个是一个单行注释
/*
这是个多行注释
*/
/// 这也是注释 
  1. 变量的声明 、命名规则、数组类型

Dart是一个强大的脚本类语言,可以不预先定义类型,自动会类型推断
Dart 中定义变量也可以使用var关键字来声明
Dart 变量命名规则:
1.变量名称必须由数字、字母、下划线和美元符($)组成
2.注意:标识符开头不能是数字
3.标识符不能是保留字或关键字
4.变量的名字是区分大小写如:age和Age是不同的变量,在实际的项目中不建议这样使用
5.变量名一定要见名思意:变量名称建议用名词,方法名称建议用动词

Dart中常用数据类型:

String (字符串);
数值类型
Int (整数)
double (浮点数)
List (集合/数组)在Dart中,数组是列表对象,所以大多数同学都是称它为列表
Booleans(布尔)
Maps(字典/跟js的object相似) 通常来说,Map 是一个键值对关的对象,键和值可以任何类型的对象,每个键只

main() {
var str = "我是字符串1"; // 自动会类型推断
String as1 = "我是字符串as1"; // 定义g一个字符串
int numbers = 10; // 定义g一个整数
double floating=10.1; // 定义g一个浮点数
bool flag= true;   // 值 true / false
var l1=['aaa','bbbb','ccccc']; // 第一种定义List的方式
var l2=new List(); // 第二种定义List的方式
var l3 = new List<String>(); //  指定类型声明
print(l1[0]); // 访问l1的第0个值

l2.add('qi');  // 向l2里添加值
l2.add('ying');  // 向l2里添加值
l2.add('cong'); // 向l2里添加值

var person={ // 第一种定义Map的方式
"name":"qiyingcong",
"age":21
};

var p = new Map(); // 第二种定义Map的方式
p["name"] = "qi"; // 赋值
print(person["name"]); // 访问name

// is 关键词判断数据类型
print(str is String);

int subTot = str; // 这样会报错,因为string类型不直接赋值给int类型

print(str);
print(as1);
print(numbers);
print(floating);
print(flag);
} 

List里面常用的属性和方法:
常用属性:
length 长度
reversed 翻转
isEmpty 是否为空
isNotEmpty 是否不为空
常用方法:
add 增加
addAll 拼接数组
indexOf 查找 传入具体值
remove 删除 传入具体值
removeAt 删除 传入索引值
fillRange 修改
insert(indexer,value) 指定位置插入
inserAll(index,list) 指定位置插入List
toList() 其它类型转换成List
join() List转换成字符串
split() 字符串转化为List
forEach
map
where
any
every

不常用数据类型:

Runes 、Symbols

Runes 是UTF-32编码的字符串,它可以通过文字转换成符号表情或代表特定的文字。
前面咱们了解到String类型是UTF-16编码的,所以Rune是一种特殊的字符串,有自己相对独有的声明方式。我们不做详细介绍,简单按照官网的代码,演示一下。

main() {
  var clapping = '\u{1f44f}';
  print(clapping);
  print(clapping.codeUnits);
  print(clapping.runes.toList());

  Runes input = new Runes('\u2665  \u{1f605}  \u{1f60e}  \u{1f47b}  \u{1f596}  \u{1f44d}');
  print(new String.fromCharCodes(input));
} 

运行结果:

Dart语言基础,Dart 基础

image.png

Symbol对象表示在Dart程序中声明的运算符或标识符。您可能永远不需要使用符号,但它们对于按名称引用标识符的API非常有用,因为缩小会更改标识符名称而不会更改标识符符号。要获取标识符的符号,请使用符号文字,它只是#后跟标识符:

#radix
#bar 

3.常量的声明 const 和 final

const 值必须在编译时知道,初始化后无法更改
final 值必须在运行时知道,初始化后无法更改
两者区别
final 可以开始不赋值 只能赋一次;而final不仅有const 的编译时常量的特性,最重要的它是运行时常量,并且final是惰性初始化,在运行时第一次使用前才初始化。

// 比如: const time = '2020-01-01'。
const time = DateTime.now() // 会报错 因为我们无法将运行时值分配给 const 变量
final time = DateTime.now() // 成功 

4.运算符、条件判断、类型转换

int a =14;
int b = 5;

算术运算符:+        -        *        /       %       ~/ 

print(a+b); // 加
print(a-b); // 减
print(a*b); // 乘
print(a/b); // 除
print(a%b); // 除余
print(a~/b); // 取整

关系运算符:==     !=     >      <        >=       <=

print(a==b); // 判断是否相等
print(a!=b); // 判断是否不等
print(a>b); // 判断是否大于
print(a<b); // 判断是否小于
print(a>=b); // 判断是否大于等于
print(a<=b); // 判断是否小于等于

 逻辑运算符:! 取反   && 并且:全部为true的话值为true 否则为false   || 或者:全部为false则为false

赋值运算符:
      基础赋值运算符: =  ??=
      复合赋值运算符:+=    -=    *=     /=    %=     ~/=       ++    --


var a;
var b = a?? 10;  // 两个问号的意思是a为空时会使用10来赋值
print(b); // b的值是10

String price= "123.1";
try {
var myNum = double.parse(price);  // 把str转换成double
} catch(err) {
 // 如果转换错误就在这里处理
}
var myNum = 12; 
var str = myNum.toString(); // 把int 类型转String


var string1 = '';
// isEmpty:判断字符串是否为空

  if (string1.isEmpty) {
    print('string1是空');
  } else {
   print('string1不为空');
  }

  var sex = "男";
  switch (sex) {
    case "女":
      print("性别女");
      break;
    case "男":
      print("性别男");
      break;
    default:
      print("传入参数有误");
      break;
  } 

5.循环语句:for、while 、do..while 、break

for(int i =0;i<=10;i++){ //打印0到10
   print(i);
}

int i =1;
whild(i<=10){
print(i);
i++;
}

int s = 1;
var sum = 0;
do{
sum+=i;
i++
}while(i<=100);
print(sum); 

未更新完...

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
Redis 6.0 正式版终于发布了!除了多线程还有什么新功能?
!(https://oscimg.oschina.net/oscnet/b8c8b22b9f44bd806c26b486e1893a263a4.jpg)这是我的第56篇原创文章!(https://oscimg.oschina.net/oscnet/8bf00bc92f6a1cd46596ee44bac64a801ae.pn
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这