1.dart sdk安装版本
dart --version
Dart VM version: 1.24.3 (Wed Dec 13 23:26:59 2017) on "macos_x64"
2.编写例子dart 技术π值和dartPad
不一样,提示报错
2.提示错误
3.dart的基本语法
本书并非详尽无遗,只是简单介绍一下这种语言,供喜欢以身作则的人学习。您可能还想查看语言和库教程
简单的helloworld
hello.dart
void main() { print('Hello, World!'); }
结构打印helo 、 World!
3.1Variables
var name = 'keny风清扬';
var year = 1990;
var antennaDiameter = 3.7;
var flybyObjects = ['Jupiter', 'Saturn', 'Uranus', 'Neptune'];
var image = {
'tags': ['saturn'],
'url': '//path/to/saturn.jpg'
};
打印变量
dart hello.dart
Hello, World!
keny风清扬
{tags: [saturn], url: //path/to/saturn.jpg}
3.2程序结构
- 分支语句
- 循环语句
if (year >= 2001) { print('21st century'); } else if (year >= 1901) { print('20th century'); } for (var object in flybyObjects) { print(object); } for (int month = 1; month <= 12; month++) { print(month); } while (year < 2016) { year += 1; }
3.3函数调用
斐波那契数列,递归调用
0 1 2 3 4 5 6
0 1 1 2 3 5 8
int fibonacci(int n) {
if (n == 0 || n == 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
var result = fibonacci(30);
编辑fibonacci.dart
int fibonacci(int n) {
if (n == 0 || n == 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
void main() {
var result = fibonacci(5);
print("fibonacci(5) result=${result}");
var result1 = fibonacci(30);
print("fibonacci(30) result=${result1}");
}
运行结果为
3.4注解Comments
// 备注单行
/*备注多行*/
3.5 Imports 导入
// 导入数学库 import 'dart:math'; // import 'package:test/test.dart'; // 导入自定义库 import 'path/to/my_other_file.dart';
3.6 类
下面是一个具有三个属性、两个构造函数和一个方法的类的示例
//汽车,名字和生成日期 class Car { String name; DateTime createDate; // Car(this.name, this.createDate) { // } // 构造函数 Car.createDate(String name) : this(name, null); int get createDate.Year => createDate?.year; // 只读 // 功能模块 void describe() { print('Car: $name'); if (createDate != null) { int years = DateTime.now().difference(createDate).inDays ~/ 365; print('计划推出: $launchYear ($years years ago)'); } else { print('取消'); } } }
奇怪官网的例子不通
提示: No static method 'now' declared in class 'DateTime'