Dart语言的基本介绍
简介在前面我们已经介绍过Flutter的开发语言是Dart,所以本节我们主要讲下Dart的基本语法,如果需要深究Dart,还需要查阅其他相关资料进行学习。
在前面我们已经介绍过Flutter的开发语言是Dart,所以本节我们主要讲下Dart的基本语法,如果需要深究Dart,还需要查阅其他相关资料进行学习。
Dart语言入门成本还是比较低,如果有编程经验的同学能很快入门。废话不多说,下面我们就从基本的开始进行学习。
一、语言特性
- Dart所有的东西都是对象, 即使是数字numbers、函数function、null也都是对象,所有的对象都继承自Object类。
- Dart动态类型语言, 尽量给变量定义一个类型,会更安全,没有显示定义类型的变量在 debug 模式下会类型会是 dynamic(动态的)。
- Dart 在 running 之前解析你的所有代码,指定数据类型和编译时的常量,可以提高运行速度。
- Dart中的类和接口是统一的,类即接口,你可以继承一个类,也可以实现一个类(接口),自然也包含了良好的面向对象和并发编程的支持。
- Dart 提供了顶级函数(如:main())。
- Dart 没有 public、private、protected 这些关键字,变量名以”_”开头意味着对它的 lib 是私有的。
- 没有初始化的变量都会被赋予默认值 null。
- final的值只能被设定一次。const 是一个编译时的常量,可以通过 const 来创建常量值,var c=const[];,这里 c 还是一个变量,只是被赋值了一个常量值,它还是可以赋其它值。实例变量可以是 final,但不能是 const。
- 编程语言并不是孤立存在的,Dart也是这样,他由语言规范、虚拟机、类库和工具等组成:
- SDK:SDK 包含 Dart VM、dart2js、Pub、库和工具。
- Dartium:内嵌 Dart VM 的 Chromium ,可以在浏览器中直接执行 dart 代码。
- Dart2js:将 Dart 代码编译为 JavaScript 的工具。
- Dart Editor:基于 Eclipse 的全功能 IDE,并包含以上所有工具。支持代码补全、代码导航、快速修正、重构、调试等功能。
二、关键字
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|
| abstract | as | assert | async | await | break | case | catch |
| class | const | continue | covariant | default | deferred | do | dynamic |
| else | enum | export | external | extends | factory | false | final |
| finally | for | Function | get | hide | if | implements | import |
| in | interface | is | library | mixin | new | null | on |
| operator | part | rethrow | return | set | show | static | super |
| switch | sync | this | throw | true | try | typedef | var |
| void | while | with | yield | - | - | - | - |
三、变量和常量
1、变量的声明
可以使用var、Object或dynamic,没有指定类型的变量,系统会根据赋值的类型来决定该变量的类型
var name = "Zhang";
print(name);//Zhang,字符串
Object age = 20;
print(age);//20,Int
dynamic sex = "男";
print(sex);//男,字符串
注意:使用var定义的变量,后面是不能重新赋值不同类型的值,也就是说类型不能变。其他两种定义的变量,后续是可以变更值的类型。
```dart
var name = "Zhang";
print(name);
name = "Hai"; //这样是可以的
print(name);
name = 1;//这样就会报错
print(name);
2、显式声明变量类型
int money = 1;
print(money);//1
String address = "chengdu";
print(address);//chengdu
bool is_boy = true;
print(is_boy);//true
注意:显式声明的变量,后续也不能更改值的类型。
3、变量的默认值
在Dart中,所以没有赋值的变量的默认值都是null,如int、String、bool等
int money;
print(money);//null
String address;
print(address); //null
bool is_boy;
print(is_boy);//null
4、final 和 const
- 4.1、如果你不想改变一个变量的值,那么就可以使用Final和const来定义。区别在于,const是编译时常量,final是运行时常量,值可以被复制一次。如下:
var age = 10;
final g_age = age; //值可以从其他变量来
print(g_age);//10
const sex = "男";//值必须是固定的
print(sex);//男
//在后面去设置两个常量的值,就会
- 4.2、常量不能跟var同时使用
//会提示:Expected an identifier,
//因为var是用来修饰变量的,而final修饰的变量称之为常量(不能改变,只能赋值一次),所以不能这么混合使用
final var age = true;
//这一句提示这个:The const variable 'var' must be initialized
//The name 'var' is already defined.
const var name= 'Zhang';
- 4.3、如果是类级别的常量,需要使用static const
void main() {
(new Test()).main();
}
class Test {
static const name = "test";
main() {
print(name);
}
}
四、数据类型
1、num类型
num是数字类型的父类,它下面有两个子类int和double
//整型
int a = 1;
print(a);//1
//字符串数字转整数
int b = int.parse('111');
print(b);//111
//浮点类型
double c = 10;
print(c);//10.0
//字符串转浮点
double d = double.parse('12');
print(d);//12.0
//整数转字符串
String e = 100.toString();
print(e+"-string");//100-string
//浮点数转整数
String f = 123.123.toString();
print(f+'-string');//123.123-string
//整数或浮点数保留几位小数转成字符串,并且会四舍五入
String g = 123.toStringAsFixed(3);
print(g+'-string');//123.000-string
String h = 123.1367.toStringAsFixed(3);
print(h+'-string');//123.137-string
2、String类型
- Dart里面的String是一系列UTF-16代码单元
- 可以使用单引号或双引号来创建一个字符串
- 单引号或者双引号里面嵌套使用引号
- 可以使用${表达式}将表达式的值放入字符串中
- 字符串拼接使用“+”
//双引号
String str_1 = "ChengDu";
print(str_1);//ChengDu
//单引号
String str_2 = "ShangHai";
print(str_2);//ShangHai
//字符串拼接使用+号
print(str_1+str_2);//ChengDuShangHai
//双引号中有单引号
String str_3 = "Hello,'XiaoHai',hi917";
print(str_3);//Hello,'XiaoHai',hi917
//单引号中签到双引号
String str_4 = 'Hello,"XiaoHai",hi917';
print(str_4);//Hello,"XiaoHai",hi917
//表达式
String str_5 = "${str_3.toUpperCase()},haha";
print(str_5);//HELLO,'XIAOHAI',HI917,haha
参考文档:
https://blog.csdn.net/lyh1299259684/article/details/80526492
https://www.jianshu.com/p/9e5f4c81cc7d
快速生成表格
nodejs中使用npm和yarn,使用最新阿里云镜像 aliyun mirror,网上很多还是文章用的是下面这个地址~~yarn config set registry https://registry.npm.taobao.org~~
《是妈妈是女儿》聚焦母女间未曾言明的爱意,以书信对话的形式呈现出各自的内心独白,表达彼此的牵挂。黄绮珊与希林娜依·高用跨越时空、打开心扉、深情对唱的形式,将天下母女爱的寄语化作心灵的倾诉。黄绮珊的每一句话,每一个字都演绎出了妈妈对女儿的爱,而希林依娜·高把女儿对妈妈的爱由不理解到理解再到感恩演绎得淋漓尽致。
默认情况下 pip 使用的是国外的镜像,在下载的时候速度非常慢,本文我们介绍使用国内源对pip进行加速。
Electron页面跳转、浏览器打开链接和打开新窗口
Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。