Flutter

Flutter学习笔记1.1 Dart基础(变量 常量 命名规则

2022-04-20  本文已影响0人  艾伦oy

作为我自学flutter的复习笔记,后面忘记了什么知识点方便自己回看。

Dart介绍:

Dart是由谷歌开发的计算机编程语言,它可以被用于web、服务器、移动应用 和物联网等领域的开发。
Dart诞生于2011年,号称要取代JavaScript。但是过去的几年中一直不温不火。直到Flutter的出现现在被人们重新重视。
要学Flutter的话我们必须首先得会Dart。
官网:https://dart.dev/

Dart环境搭建:

要在我们本地开发Dart程序的话首先需要安装Dart Sdk
官方文档:https://dart.dev/get-dart

windows(推荐):

http://www.gekorm.com/dart-windows/

Mac·:

如果mac电脑没有安装brew这个工具首先第一步需要安装它: https://brew.sh/

brew tap dart-lang/dart

brew install dart

Dart 开发工具:

Dart的开发工具有很多: IntelliJ IDEA 、 WebStorm、 Atom、Vscode等

这里我们主要给大家讲解的是如果在Vscode中配置Dart。

1、找到vscode插件安装dart

2、找到vscode插件安装code runner Code Runner 可以运行我们的文件

Dart 变量:

dart是一个强大的脚本类语言,可以不预先定义变量类型 ,自动会类型推倒

dart中定义变量可以通过var关键字可以通过类型来申明变量

如:

 var str='this is var';

 String str='this is var';

 int str=123;

注意: var 后就不要写类型 , 写了类型 不要var 两者都写 var a int = 5; 报错

Dart 常量: final 和 const修饰符

const值不变 一开始就得赋值
final 可以开始不赋值 只能赋一次 ; 而final不仅有const的编译时常量的特性,最重要的它是运行时常量,并且final是惰性初始化,即在运行时第一次使用前才初始化
永远不改量的量,请使用final或const修饰它,而不是使用var或其他变量类型。

区别final可以开始不赋值 只能赋一次 ; 而final不仅有const的编译时常量的特性,最重要的它是运行时常量,并且final是惰性初始化,即在运行时第一次使用前才初始化

    final name = 'Bob'; // Without a type annotation
    final String nickname = 'Bobby';

    const bar = 1000000; // Unit of pressure (dynes/cm2)
    const double atm = 1.01325 * bar; // Standard atmosphere

Dart的命名规则:

1、变量名称必须由数字、字母、下划线和美元符($)组成。

2.注意:标识符开头不能是数字

3.标识符不能是保留字和关键字。

4.变量的名字是区分大小写的如: ageAge是不同的变量。在实际的运用中,也建议,不要用一个单词大小写区分两个变量。

5、标识符(变量名称)一定要见名思意 :变量名称建议用名词,方法名称建议用动词


    //var 2str='xxx';   //错误

    // var if='124214';  //错误


    //变量的名字是区分大小写的
    var age=20;

    var Age=30;

    print(age);
    print(Age);

    

    var price=12;

    var name=124;

基本类型

Dart中支持以下数据类型:

常用数据类型:
Numbers(数值):
int(整形)
double(浮点)
Strings(字符串)
Booleans(布尔)
List(数组) 在Dart中,数组是列表对象,所以大多数人只是称它们为列表
Maps(字典) 通常来说,Map 是一个键值对相关的对象。 键和值可以是任何类型的对象。每个 键 只出现一次, 而一个值则可以出现多次

不常用类型Runes(了解即可)
Rune是UTF-32编码的字符串。它可以通过文字转换成符号表情或者代表特定的文字。

    main() {
      var clapping = '\u{1f44f}';
      print(clapping);
      print(clapping.codeUnits);
      print(clapping.runes.toList());
    
      Runes input = new Runes(
          '\u2665  \u{1f605}  \u{1f60e}  \u{1f47b}  \u{1f596}  \u{1f44d}');
      print(new String.fromCharCodes(input));
    }

Symbols(了解即可)
Symbol对象表示在Dart程序中声明的运算符或标识符。您可能永远不需要使用符号,但它们对于按名称引用标识符的API非常有用,因为缩小会更改标识符名称而不会更改标识符符号。要获取标识符的符号,请使用符号文字,它只是#后跟标识符:
在 Dart 中符号用 # 开头来表示,入门阶段不需要了解这东西,可能永远也用不上。
http://dart.goodev.org/guides/libraries/library-tour#dartmirrors---reflection

Dart数据类型:字符串类型

  //1、字符串定义的几种方式

  // var str1='this is str1';
  // print(str1);

//换行字符串
  //   String str1="""
  //   this is str1
  //   this is str1

  //   this is str1
  //   """;
  //  print(str1);

  //2、字符串的拼接

  String str1='你好';

  String str2='Dart';

  // print("$str1 $str2");
  print(str1 + str2);
  print(str1 +" "+ str2);

Dart数据类型:数值类型

int ,double

void main(){
  //1、int   必须是整型
    int a=123;
    a=45;
    print(a);
  //2、double  既可以是整型 也可是浮点型
    double b=23.5;
    b=24;
    print(b);
  //3、运算符
    // + - * / %
    var c=a+b;
    print(c);
}
Dart数据类型:布尔类型

booltrue/false

void main() {
  //1、bool
  bool flag1 = true;
  print(flag1);
  bool flag2 = false;
  print(flag2);
  //2、条件判断语句
  var flag = true;
  if (flag) {
    print('真');
  } else {
    print('假');
  }
  var a = 123;
  var b = '123';
  if (a == b) {
    print('a=b');
  } else {
    print('a!=b');
  }
  var a = 123;
  var b = 123;
  if (a == b) {
    print('a=b');
  } else {
    print('a!=b');
  }
}

Dart数据类型

List(数组/集合)

void main() {
  //1、第一种定义List的方式

  var l1 = ["张三", 20, true];

  print(l1); //[张三, 20, true]

  print(l1.length); //3

  print(l1[0]); //张三

  print(l1[1]); //20

  //2、第二种定义List的方式 指定类型
  var l2 = <String>["张三", "李四"];
  print(l2);
  var l3 = <int>[12, 30];
  print(l3);

  //3、第三种定义List的方式  增加数据 ,通过[]创建的集合它的容量可以变化
  var l4 = [];
  print(l4);
  print(l4.length);

  l4.add("张三");
  l4.add("李四");
  l4.add(20);
  print(l4);
  print(l4.length);

  var l5 = ["张三", 20, true];
  l5.add("李四");
  l5.add("zhaosi");
  print(l5);

  //4、第四种定义List的方式
  var l6 = new List(); //在新版本的dart里面没法使用这个方法了

  var l6 = List.filled(2, ""); //创建一个固定长度的集合
  print(l6);
  print(l6[0]);

  l6[0] = "张三"; //修改集合的内容
  l6[1] = "李四";

  print(l6); //[张三, 李四]

  l6.add("王五"); //错误写法  通过List.filled创建的集合长度是固定  没法增加数据

  //通过List.filled创建的集合长度是固定
  var l6 = List.filled(2, "");
  print(l6.length);
  l6.length = 0; //修改集合的长度   报错

  var l7 = <String>["张三", "李四"];
  print(l7.length); //2
  l7.length = 0; //可以改变的
  print(l7); //[]

  var l8 = List<String>.filled(2, "");
  l8[0] = "string";
  // l8[0]=222;
  print(l8);
}

Maps(字典)
void main() {
  //第一种定义 Maps的方式

  var person = {
    "name": "张三",
    "age": 20,
    "work": ["程序员", "送外卖"]
  };

  print(person);

  print(person["name"]);

  print(person["age"]);

  print(person["work"]);

  // 第二种定义 Maps的方式

  var p = new Map();

  p["name"] = "李四";
  p["age"] = 22;
  p["work"] = ["程序员", "送外卖"];
  print(p);

  print(p["age"]);
}
Dart判断数据类型

is 关键词来判断类型

void main() {
  var str = '1234';

  if (str is String) {
    print('是string类型');
  } else if (str is int) {
    print('int');
  } else {
    print('其他类型');
  }

  var str = 123;
  if (str is String) {
    print('是string类型');
  } else if (str is int) {
    print('int');
  } else {
    print('其他类型');
  }
}
上一篇下一篇

猜你喜欢

热点阅读