【Flutter】 Dart 基础笔记 一

Flutter线上运行环境(PlayGround):

DartPad
Online Dart Compiler

控制台输出

	print("Hello Word")

变量

Dart是类型安全的 - 他使用静态类型检查和运行时的组合,检查以确保变量的值时钟鱼变量的静态值匹配类型。尽管类型是必须的,单某些类型的注释是可选的,因为Dart会执行类型推断。

创建和分配变量
在Dart中,变量必须是明确的,类型或系统能够解析的类型。

	String name = 'dart';
	var otherName = 'Dart';

默认值

在Dart中,未初始化的变量的初始值为null。

注意:数字在Dart中也没当成对象,所以只要是带有数字类型的未初始化的变量的值都是null

	var name ;//==null
	int x;//==null

检查null或零

只有布尔值“true”被视为true。
	var myNull = null;
	if (myNull == null){
		print('use "== null" to check null');
	}
	var zero = 0;
	if (zero == 0){
		print('use " == 0 " to check zero');
	}

Dart null 检查的最佳实践

null-aware 运算符
	bool isConnected(a,b){
		bool outConn = outgoing[a]?.contains(b) ?? false;
		bool inConn = incoming[a]?.contains(b) ?? false;
		return outConn || inConn;
	}
`?.` 运算符在左边为null的情况下会阻断右边的调用,`??`运算符的主要作用是在左边表达式为null是为其设置默认值

对于表达式:
outgong[a]?.contains(b)
如果 outgning 为 nul l或 outgoing[a] 为 null 或 contains(b) 为 null,都会导致表达式为 null。

Functions

Dart中不需要关键字定义方法

异步编程

Futures

Dart支持单线程执行。使用Future表示异步操作:
	_getIPAddress(){
		final url = 'http://.....';
		HttpRequest.request(url).then((value){
			print(json.decode(value.responseText)['origin']);
		}).catchError((error) =>print(error))
	}

async 和 await

async 函数声明定义了一个异步函数。
Dart中,async函数返回一个Future,函数的主体是稍后执行。await运算符用于等待Future:

	_getIPAddress() async {
		final url = 'https://.....';
		var request = await HttpRequest.request(url);
		String ip = json.decode(request.responseText)['origin'];
		print(ip);
	}

猜你喜欢

转载自blog.csdn.net/sinat_30220049/article/details/107759287