flutter学习笔记之dart(转载至B站up主筱筱知晓的大地老师)

一、Dart介绍:

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

官网:https://dart.dev/

1、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

2、Dart 开发工具:

Dart的开发工具有很多: IntelliJ IDEA 、 WebStorm、 Atom、Vscode等,这里我们主要给大家讲解的是如果在Vscode中配置Dart。

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

3、示例:

main(){//main是程序的唯一入口
  print('你好 dart');//输出语句
  print("你好 dart1");//可以是单引号也可以是双引号
}
  • 入口方法的两种定义方式:
main(){
    print('你好dart');
}
//表示main方法没有返回值
///也是注释
void main(){
	print('你好dart');
}

二、dart基本规则

1、Dart 变量:

dart是一个强大的脚本类语言,可以不预先定义变量类型 ,自动会类型推倒,dart中定义变量可以通过var关键字可以通过类型来申明变量,如:

    var str='this is var';
    String str='this is var';
    int str=123;
  • 注意: var 后就不要写类型,写了类型不要var,两者都写var a int = 5;报错。
    示例:
void main() {
  var str='你好dart';
  var myNum=1234;
  print(str);
  print(myNum);

  //字符串
  String str='你好dart';
  print(str);

  //数字类型
  int myNum=12354;
  print(myNum);

  //dart里面有类型校验
  var str='';
  str=1234;//报错
  print(str);
  
  String str = "2131242";
  print(str);
  int myNum = 1243214;
  print(myNum);
}

2、Dart 常量: final 和 const修饰符

  • const值不变 一开始就得赋值
  • final 可以开始不赋值 只能赋一次 ; 而final不仅有const的编译时常量的特性,最重要的它是运行时常量,并且final是惰性初始化,即在运行时第一次使用前才初始化。
  • 注意:永远不改量的量,请使用final或const修饰它,而不是使用var或其他变量类型。
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
*/
void main() {
  /*
  var str='this is a str';
  str='你好 str';
  print(str);
  
  int myNum=1234;
  myNum=4567;
  print(myNum);
 */

//const常量
  const PI=3.14159;
  PI=123.1243; //错误的写法 常量不可以修改
  print(PI);

// final 常量
  final PI=3.14159;
  PI=124214.214124;   //错误写法
  print(PI);
  final a = new DateTime.now(); //const不能这么写,因为a是在运行是被赋值的,刚定义时没被赋值
  print(a); //2019-05-10 15:59:02.966122
  const a=new DateTime.now();   //报错了
}

3、Dart的命名规则:

  • 变量名称必须由数字、字母、下划线和美元符($)组成。
  • 注意:标识符开头不能是数字
  • 标识符不能是保留字和关键字。
  • 变量的名字是区分大小写的如: age和Age是不同的变量。在实际的运用中,也建议,不要用一个单词大小写区分两个变量。
  • 标识符(变量名称)一定要见名思意 :变量名称建议用名词,方法名称建议用动词。
void main() {
  var $ = 'dd';
  print($);
  var str1 = '2134214';
  var 2str='xxx';   //错误
  var if='124214';  //错误

  //变量的名字是区分大小写的
  var age = 20;
  var Age = 30;
  print(age);
  print(Age);

  //变量的名字最好具有意义
  var price = 12;
  var name = 124;
}

三、dart数据类型

Dart中支持以下数据类型:
1、常用数据类型:

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

2、项目中用不到的数据类型 (用不到):

  • 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

1、字符串类型

void main(){
  //1、字符串定义的几种方式
  var str1='this is str1';
  var str2="this is str2";
  print(str1);
  print(str2);
  
  String str1='this is str1';
  String str2="this is str2";
  print(str1);
  print(str2);

  String str1= '''this is str1
  					this is 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);
}

2、数值型

void main() {
  //1int   必须是整型
  int a = 123;
  a = 45;
  print(a);
  a = 45.0; //报错

  //2、double  既可以是整型 也可是浮点型
  double b = 23.5;
  b = 24;
  print(b);

  //3、运算符
  // + - * / %
  var c = a + b;
  print(c);
}

3、布尔类型

void main(){
  //1bool
     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');
      }
}

4、list类型

void main() {
  //1、第一种定义List的方式
  var l1 = ['aaa', 'bbbb', 'cccc'];
  print(l1);
  print(l1.length);
  print(l1[1]);

  //2、第二种定义List的方式
  var l2 = new List();
  l2.add('张三');
  l2.add('李四');
  l2.add('王五');
  print(l2);
  print(l2[2]);

  //3、定义List指定类型
  var l3 = new List<String>();
  l3.add('张三');
  //l3.add(123);//报错
  print(l3);
}

5、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"]);
}

6、判断数据类型:is关键字

void main() {
  var str = '1234';
  if (str is String) {
    print('是string类型');
  } else if (str is int) {
    print('int');
  } else {
    print('其他类型');
  }

  var str_1 = 123;
  if (str_1 is String) {
    print('是string类型');
  } else if (str_1 is int) {
    print('int');
  } else {
    print('其他类型');
  }
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值