一线大厂高级前端编写,前端初中阶面试题,帮助初学者应聘,需要联系微信:javadudu

Dart 學習01——環境搭建

在Windows上搭建Flutter開發環境

安裝Flutter SDK時會帶有Dart環境。下面教程基于Dart3Flutter SDK版本在3.10.0以上,请知晓。

系統要求

  1. 建議Windows 10或更高版本(64-bit)
  2. 磁盤能夠分配給Flutter的大小:1G
  3. 工具

安裝Flutter SDK

  1. Flutter官網下載即可Flutter SDK archive,注意:版本會不停變更,筆者這裡以2023-05-16的最新版本為主即3.10.0
  2. 将Flutter Sdk的zip解压到你想安装Flutter SDK的路径(如:C:\src\flutter;注意,不要将flutter安装到需要一些高权限的路径如C:\Program Files),会有很多小问题。
  3. 添加以下环境变量到用户PATH
  • 在“用户变量”下检查是否有名为“Path”的条目
  • 如果该条目存在, 追加 flutter\bin的全路径,使用 ; 作为分隔符.
  • 如果该条目不存在,创建一个新用户变量 Path ,然后将 flutter\bin 的全路径作为它的值,重启电脑生效。
  1. 运行flutter doctor,如果显示有版本好说明安装成功,如:
#......
[√] Flutter (Channel stable, 3.7.12, on Microsoft Windows [版本 10.0.19045.2965], locale zh-CN)
#......

至此环境搭建成功,注意:如果出现AndroidStudio等问题这里不解决,因为这是学习Dart,在后面进行开发时再进一步配置开发环境。

Dart学习

Hello, World

许多应用程序都需顶级main()功能,执行开始的地方,Dart也是。不需显示返回值的函数具有void返回类型。print用于在控制台打印信息。

void main(){
   print('Hellow, World');
}

一些重要概念

  • 空安全:除非你说明可以为空,否则为空时程序认为这是个错误。
  • Dart 支持泛型类型,例如List<int>(整数列表)或List<Object>(任何类型的对象列表)。
  • 与 Java 不同,Dart 没有关键字publicprotected, 和private。如果标识符以下划线 ( _) 开头,则它对其库是私有的。有关详细信息,请参阅 库和导入
  • Dart 工具可以报告两种问题:警告错误。警告只是表明您的代码可能无法运行,但它们不会阻止您的程序执行。错误可以是编译时的,也可以是运行时的。编译时错误会阻止代码执行;运行时错误会导致 在代码执行时引发异常。

快速了解(可选)

下面内容是基于有JavaScript语言基础的情况下需要快速转Flutter开发时的快速上手内容,后续请继续深入学习。

变量

在Dart中,你可以使用var定义变量,其变量类型将由他们的初始值决定。

var name = 'cyr';
var year = 1977;
var image = {
    'url':'/cyr.png',
    'tag':['cyr'],
};

流程控制语句

Dart也支持常用的流程控制语句

if(yera == 2023){
  print('2023');
}else{
  print('not is 2023');
}

for(int i = 1;i<=12; i++){
    print(i);
}

while(yera<2023){
   yera+=1;
}

Functions

int fibonacci(int n) {
  if (n == 0 || n == 1) return n;
  return fibonacci(n - 1) + fibonacci(n - 2);
}

var result = fibonacci(20);

注释

// This is a normal, one-line comment.

/// This is a documentation comment, used to document libraries,
/// classes, and their members. Tools like IDEs and dartdoc treat
/// doc comments specially.

/* Comments like these are also supported. */

Imports

/// Importing core libraries导入包
import 'dart:math';

Class

Class Card{
    String name;
    DatetIME? launchDate;
    
 // Read-only non-final property_只读
    int? get launchYear => launchDate?.year;
  
 // Named constructor that forwards to the default one.
   Card.unlaunched(String name):this(name:null);

}

Enums(枚举)

枚举是一种枚举一组预定义的值或实例的方法,以确保不会有任何其他该类型的实例。

enum Type {one,two,there}

///使用
final myTyoe = Type.one;
if(myType == Type.one){
   print('this is one');
}

Inheritance(继承)

下面是单一继承

class CardTwo extends Card{
     double altitude;
     CardTwo(super.name, super.launchDate, super.altitude);
}

Mixin(混入)

Mixin 是一种在多个类层次结构中重用代码的方法。

mixin Swimming{
     void swim{
          print('swimming......');
     }
}

class CardThere extends Card with Swimminng {}

///使用
CardThere.swim();//输出swimming......

Interfaces and abstract class(接口和抽象类)

接口

abstract class Animal {
  void eat();
}

class Dog implements Animal {
  ///@override注解可以后续再理解,这里不阐述
  @override
  void eat() {
    print('Dog is eating.');
  }
}

抽象类

abstract class Animal {
  void eat();
}

abstract class Mammal extends Animal {
  void run();
}

class Dog extends Mammal {
  @override
  void eat() {
    print('Dog is eating.');
  }

  @override
  void run() {
    print('Dog is running.');
  }
}

其实接口和抽象类很像,但是却有不同的使用情况,可以研究。

Async(异步)

asyncawait有助于使异步代码易于阅读,dart也支持异步。

Future<void> printWithDelay(String message) {
  return Future.delayed(oneSecond).then((_) {
    print(message);
  });
}

Exceptions(异常)

错误处理在程序中必不可少。

原文链接:https://juejin.cn/post/7233678973322559543 作者:陈柒吖

(0)
上一篇 2023年5月17日 上午10:53
下一篇 2023年5月17日 上午11:03

相关推荐

发表评论

登录后才能评论