/**
* Dart中的库只要有三种;
* 1.自定义库
* import "lib/xxx.dart";
* 2.系统内资的库
* import "lib/dart:math";
* import "lib/dart:io";
* import "lib/dart:convert";
* 3.Pub包管理系统中的库
* https://pub.dev/packages
* https://pub.flutter-io.cn/packages
* https://pub.dartlang.org/flutter/
* 1.需要在自己项目根目录创建一个pubspec.yaml
* 2.在pubspec.yaml文件, 然后配置名称, 描述, 依赖等信息
* 3.然后运行pub get 获取下载到本地
* 4.项目中引入库 import 'package:http/http.dart' as http;
// * 这一部分dart文档很详细
当引入两个库中又相同名称标识符的时候, 如果是java通常写上完整的包名路径来指定
Dart里面可以去一个别名
import "lib/Person1.dart";
import "lib/Person1.dart" as lib;
别名使用 lib.Person p = new lib.Person()
如果util.dart文件里面有多个方法, 直接使用import "lib/util.dart"引入了所有方法,在这个文件都可以使用这些方法
但是如果只想使用其中一个方法, 可以使用show 方法名, 来只引入指定的方法
import "lib/util.dart" show getTime;
*/
import "dart:math";
import 'dart:io';
import 'dart:convert';
import 'dart:convert' as convert;
// 这里顺便提一下异步方法,这个async 配和 await使用 和js的是一样的, async是异步方法, 在异步方法里面才能用await
void main() async {
// var m = min(10, 20);
// print(m);
// var res = await getDataFromZhiHuApi();
// print(res);
// var r = await test();
// print(r);
// var rr = test();直接这么写是错误的,获取异步方法值需要用await来执行函数
}
getDataFromZhiHuApi() async {
// 1.创建HttpClient对象
var httpClient = new HttpClient();
// 2.创建url对象
var url = new Uri.http("news-at.zhihu.com", '/api/3/stories/latest');
// 3.发起请求, 等待请求
var request = await httpClient.getUrl(url);
// 4.关闭请求等待响应
var response = await request.close();
// 5.解码响应内容
return await response.transform(utf8.decoder).join();
}
// 关于async和await:
/**
* 这两个关键字的使用只需要记住两点;
* 只有async方法才能使用await关键字调用方法
* 如果调用别的async方法必须使用await关键字
* async是让方法变成异步
* await是等待异步方法执行完成
*/
// 创建一个异步方法
test() async {
return "我是异步方法test";
}