Dart语言基本学习,和Flutter环境配置

配置环境

要学习Flutter,那么第一部肯定是配置好开发环境。我们可以去到Flutter的中文网站: https://flutterchina.club/. 里面有详细的讲解。这里我也简单的说一下。

第一步

首先先配置个人的用户环境,在Flutter中文网里面所看的,第一步先配置好自己的用户变量,这里直接复制网站里的键和值就好了

图1
这里放到里面去。
图2

第二步

接下来就是要下载 Flutter 的SDK,如果点解官网的地方是需要翻墙去下载的,那个不翻墙可以去github里下载 链接: https://github.com/flutter/flutter/releases.

下载了以后,将安装包zip解压到你想安装Flutter SDK的路径(如:C:\src\flutter;注意,不要将flutter安装到需要一些高权限的路径如C:\Program Files\)。

在Flutter安装目录的flutter文件下找到flutter_console.bat,双击运行并启动flutter命令行,接下来,你就可以在Flutter命令行运行flutter命令了。
在这里插入图片描述

第三步

需要更新环境变量,要在终端运行 flutter 命令, 你需要添加以下环境变量到系统PATH:
转到 “控制面板>用户帐户>用户帐户>更改我的环境变量”
在“用户变量”下检查是否有名为“Path”的条目:
如果该条目存在, 追加 flutter\bin的全路径,使用 ; 作为分隔符.
如果条目不存在, 创建一个新用户变量 Path ,然后将 flutter\bin的全路径作为它的值.
在“用户变量”下检查是否有名为”PUB_HOSTED_URL”和”FLUTTER_STORAGE_BASE_URL”的条目,如果没有,也添加它们。

在这些都准备好以后,就可以打开一个新的命令提示符或PowerShell窗口并运行以下命令以查看是否需要安装任何依赖项来完成安装:flutter doctor

第四步

这里我是用Android Studio 开发的,所以在设置插件里面,寻找Flutter插件并下载就ok了。
在这里插入图片描述
在第一次下载的时候,会询问是不是下载Dart插件,点击下载就ok了。在重启AS后就开始创建自己第一个Flutter工程,自此Flutter的环境变量就完成了。

Dart语言学习

在创建Flutter第一个工程后,会看到第一个dart文件main.dart。里面有一个main方法,学过Kotlin的朋友应该知道,这种可以写类的外部的函数,叫做顶层函数。
在这里插入图片描述
Dart是强类型语言。

Dart 一切皆对象,比如我们在Java在声明 int i;的时候,默认值是0,但是在Dart里面输出是null,所以说Dart里一切皆对象。

在定义变量的时候,可以用Object ,Var ,dynamic,或者直接像Java上 int String 定义变量。但是在使用区别不大,但是在底层实现有区别。
在这里插入图片描述
Object :在字节码里面就是定义了Object变量。
Var:在声明的变量赋值那一刻,就决定了它是什么类型。比如赋值了int 在字节码里就是int型。
dynamic:动态的变换。

final:运行期常量
const:编译器常量(这个运行效率更高)

编辑器不确定的值,不可以赋值给 const的常量。

内置数据类型

数值类型: num

在Dart 当中的 Int 可以 当成java中的 Long使用,因为如果超过4个字节,会编译成Long,如果不超过会编译成Short 或者 Int。(根据平台动态来决定)

字符串类型: String

在Dart中 String 比 java更方便,当我们想在字符串里使用双引号的时候在java里我们需要使用 \ 。在Dart中我们可以用’'单引号来括住双引号来使用。当我们想输出\n的时候在 java 是需要\n来输出,在Dart中我们可以用r前缀来定义。在多行字符串定义中, 我们可以使用3个双引号或单引号来定义。

String str =  "'karson' \" text \"";
Sting str1 =  ‘“Karson” \' text\' ’;
//这两种方式都是可以的
//在字符拼接上跟kotlin很像
 int i = 10; //默认是null
 String str = "字符大小";//默认是null
 // i.bitLength 是方法 所以要用{}来阔住
 print("$str:拼接${i.bitLength}");
 //r前缀 raw:原始  
 String str1 = r"\n";

 //多行字符串
  String str2 = """dfads f
  fdsa fsda
   fasdf sadf
   fdas fs""";
布尔类型:bool

在Dart中,这里布尔类型也是一个类。

//定义一个布尔类型
bool b = false;
数组类型:List
/**
   * List
   * */
  //创建了一个String 的数组
  List<String> list = new List();
  List<int> list1 = [1,2,3,4,5];
  //像Java一样,通过下标找数据
  int item1 = list1[0];
  //遍历数组
  for(var o in list1){

  }
  for(var j = 0;j < list1.length;++j){

  }
  //List 对象不可变
  //const 修饰的是[1,2,3]这一个对象,表示这个对象不可变,不能再add元素了
  List<int> list2 = const[1,2,3];
  //编译器可以,运行会报错
  list2.add(1);
  list2 = [2,3];//这样是可以引用的
  
  //const 修饰的是变量,也就是引用,那么变量就不能够重新引用其他的对象了,也不能去修改
  const List<int> list3 = [1,2,3];
//  list3 = [2,3]; 这样是会报错的
映射集合:Map
/**
   * 映射集合 Map
   * */
  Map map = new Map();
  //也可以 这样创建的
  Map<String,int> map1 = {"1":1,"2":2,"3":3};
  //[]这里传入得是key
  print(map1["1"]);
//  修改value
  map1["1"] = 100;
  print(map1["4"]);//如果取一个不存在的元素,会得到一个null
  
 //遍历
  map1.forEach((key, value) { 
    
  });
  var iterable = map1.keys;
  iterable.forEach((element) { 
    var j = map1[element];
  });
UniCode:Runes
 /**
   * Runes :特殊字符表示类(Unicode32)
   * */
  var clapping = '\u{1f44f}';///5个15进制 需要使用{}
  print(clapping);//就是一个特使字符 拍手
  //获取 16位代码单元
  print(clapping.codeUnits);//[55357,56399]
  //获得Unicode代码
  print(clapping.runes.toList());//[128079]

  //fromCharCode 根据字符码创建字符串
  print(String.fromCharCode(128079));
  print(String.fromCharCode(0x1f44f));
  print(String.fromCharCodes(clapping.runes));
  print(String.fromCharCodes([55357,56399]));
标识符:Symbols
/**
   * Symbols 标识符
   * */
  var a = #A;
  print(a.runtimeType);//Symbols

猜你喜欢

转载自blog.csdn.net/karsonNet/article/details/107556877