flutter(2):基础的语法学习,非常像java javascript 特别容易入手

前言


本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/90488394
未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

1,关于dart


要开发 flutter 必须得用 dart 进行开发。
这个是个很容易学的语言,比golang 还容易,和java JavaScript 非常相似。
Flutter 官方网站:
https://flutter.dev
https://flutter-io.cn/
https://codelabs.flutter-io.cn/
参考官方代码:
https://codelabs.flutter-io.cn/codelabs/first-flutter-app-pt1-cn/index.html#0
dart 官方网站:
https://dart.dev/
下载 flutter:
https://flutter.dev/docs/get-started/install
下载 android studio :
https://developer.android.com/studio

但是默认 android 里面没有 flutter 插件。
打开 android 选择 flutter 插件,安装了 flutter 插件会自动关联安装 dart 插件.

2,dart 语法


https://zhuanlan.zhihu.com/p/38847885

var 关键字声明一个变量,var 关键字声明一个变量

 main(List<String> args) {
  var number = 42;
  var name = 'Gurleen Sethi';
  var salary = 150300.56;
  var isDoorOpen = true;
}

声明变量:

int number = 42;
  String name = 'Gurleen Sethi';
  double salary = 150300.56;
  bool isDoorOpen = true;
final int number = 42;
const String name = 'Gurleen Sethi';
//Omit explicitly defining data types
final salary = 150300.56;
const isDoorOpen = true;

final 和 const 的不同是,const 是编译时常量,也就是编译时就要有值,如 const
PI=3.14,而 final 只准许赋值一次,可以在编译时也可以在运行时。 dart 提供基本的数据类型:
• Numbers 只有 int double 没有 float
• Strings 带 $xxx 占位解析
• Booleans
• Lists
• Maps

  var list = [1,2,3,4];
list.length
print(list[1]); //Outout: 2 list.add(10); list.remove(3);//只删除一个。符合条件的第一个 list.removeAt(0);//下标删除
var map = {
   'key1': 'value1',
   'key2': 'value2',
   'key3': 'value3'
};
  print(map['key1']);
  print(map['test']);
//Output: value1
//Output: null
 map['key4'] = 'value4';
//Length

print(map.length);
//Check if a key is present
map.containsKey('value1');
//Get entries , keys and values
var entries = map.entries;
var keys = map.keys;
var values = map.values;

函数,第一个是返回类型,可以忽略,也可以使用箭头函数。

String fullName(String firstName, String lastName) {
  return "$firstName $lastName";
}
fullName(String firstName, String lastName) {
  return "$firstName $lastName";
}
fullName(String firstName, String lastName) => "$firstName $lastName";

带默认值 ,函数传递函数

    fullName({String firstName, String lastName = "Lazy"}) {
      return "$firstName $lastName";
    }
    main(List<String> args) {
       out(printOutLoud);
    }
    out(void inner(String message)) {
       inner('Message from inner function');
    }
    printOutLoud(String message) {
       print(message.toUpperCase());
    }

这里有个地方比较特别:
async await future 语法
延迟计算 future 对象。加入了 battery lib 后进行异步调用。

//第 1 种写法。
void getBattery1() {
// Instantiate it
var battery = Battery();
battery.batteryLevel.then((val) {
// Access current battery level
print("get method1 batteryLevel $val ");
});
}
//第 2 种写法。
void getBattery2() async {
// Instantiate it
var battery = Battery();
var val = await battery.batteryLevel;
// Access current battery level
print("get method2 batteryLevel $val ");
}

async await 延迟计算,针对函数,成对出现。

3,package包使用


官方说的是在 dependencies 下面增加,mqtt_client: ^5.5.3 ,然后点击【packages get】。
非常方便的点击get 按钮就可以下载相关的包了。

4,总结


官方学习地址:
https://codelabs.flutter-io.cn/

dart 语法非常容易学呢。

其他开源项目:
https://github.com/brianegan/flutter_redux
https://github.com/OpenFlutter/Flutter-Notebook
https://github.com/flutter/samples
https://github.com/flutter/samples/blob/master/INDEX.md

本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/90488394

博主地址是:http://blog.csdn.net/freewebsys

发布了624 篇原创文章 · 获赞 259 · 访问量 208万+

猜你喜欢

转载自blog.csdn.net/freewebsys/article/details/90488394
今日推荐