Flutter02-dart语法学习(上)

一、 在vscode中安装相关插件

  • Dart
  • Flutter
  • code runner: 帮助我们运行文件

二、变量的声明

1、明确声明(Explicit)

  String name = "why";
  print(name);

2、类型推导(Type Inference)
类型推导声明变量的方式, 格式如下:

var / dynamic / const / final 变量名称 = 赋值;

  • var :声明变量,
  • const: 声明常量,编译时就要有一个确定的值,只能赋值一次
  • final: 声明常量,通过计算/函数获取一个值(运行期间来确定一个值),只能赋值一次
  • dynamic:修改变量的类型
  var age = 20;
  final height = DateTime.now();
  const address = "广州市";

  dynamic person = 'LiLi';
  print(person.runtimeType); // String
  person = 22;
  print(person.runtimeType); // int

  print(age);
  print(height);
  print(address);

三、数值类型

  • int
  • double
  // 1、int
  int a = 123;
  a = 45;
  int b = 35;
  b = 36;
  print(a);
  print(b);

  // 2、double
  double c = 23.5;
  c = 24;
  print(c);

  // 判断奇数和偶数
  print(a.isOdd); // 奇数
  print(b.isEven); // 偶数

四、字符串类型

//1、字符串声明
  var str1 = 'this is str';
  String str2 = '你好dart';
  print(str1);
  print(str2);

  //2、多行字符串声明
  var str3 = """
    abc
    cba
    nba
    """;
  print(str3);

  //3、字符串和表示进行拼接: 强调:${变量}, 那么{}可以省略
  var name = "why";
  var age = 19;
  var height = 1.88;
  var message1 = "my name is ${name}, age is ${age}, height is ${height}";
  print(message1);

五 、布尔类型

  //不正确
  var flag1 = "abc";
  print(flag1);

  //只有布尔类型的 "true" 被视为true
  var flag2 = true;
  if (flag2) {
    print("执行代码");
  }

六 、List(数组)类型

// 1、第一种定义List的方式
  var person = ["张三", 20, true];
  print(person);
  print(person.length);
  print(person[0]);
  print(person[1]);

// 2、第二种定义List的方式
  var pepole = <String>["张三", "20", "true"];
  print(pepole);

  // 3、第三种定义List的方式,增加数据,长度可以修改
  var empty = [];
  empty.add("abc");
  empty.add("cba");
  empty.add("bca");
  empty.add("nba");
  empty.remove("abc");
  print(empty);

// 4、第四种定义List的方式,长度无法修改
  // var objc = List.filled(2, '');
  var objc = List<String>.filled(2, '');
  objc[0] = "张三";
  objc[1] = "李四";
  print(objc);

七、Map(字典)类型

Dart判断数据类型:
  is 关键词来判断类型

// 1、第一种定义Maps的方式
  var person = {"name": "why", "age": 18};
  print(person);
  print(person["name"]);
  print(person["age"]);

// 2、第二种定义Maps的方式
  var p = new Map();
  p["name"] = "李四";
  p["age"] = 22;
  p["work"] = ["程序员", "送外卖"];
  print(p);

八、Set(集合)类型:是无序的,并且元素是不重复的

    // 1.使用类型推导定义
    var lettersSet = {'a', 'b', 'c', 'd'};
    print('$lettersSet ${lettersSet.runtimeType}');

    // 2.明确指定类型
    Set<int> numbersSet = {1, 2, 3, 4};
    print('$numbersSet ${numbersSet.runtimeType}');

九、List(数组)、Map(字典)、Set(集合)操作

// List数组
  var l1 = ["香蕉", "苹果", "西瓜"];
  // 常用属性
  print(l1.length);
  print(l1.reversed);
  print(l1.isEmpty);
  print(l1.isNotEmpty);
  print(l1);

  // 常用方法 :
  l1.add("草莓");
  l1.addAll(["桃子", "葡萄"]);
  print(l1.indexOf("桃子"));
  print(l1.indexOf("李子")); // 不存在返回-1

  l1.remove("桃子");
  l1.removeAt(0);
  l1.fillRange(1, 2, "aaaa"); //修改
  l1.insert(1, "菠萝");
  l1.insertAll(2, ["榴莲", "橙子", "西红柿"]);
  print(l1);

  // List转字符串
  var str = l1.join("-");
  print(str);

  // 字符串分割成List
  var arr = str.split("-");
  print(arr);

// Set集合
  var s = new Set();
  s.add("香蕉");
  s.add("苹果");
  print(s);

  List myList = ["香蕉", "苹果", "西瓜", "香蕉", "苹果", "西瓜" "香蕉", "苹果", "西瓜"];
  var single = new Set();
  single.addAll(myList);
  print(single.toList());

// Map
  var person = {"name": "张三", "age": 20};
  person.addAll({
    "work": ["敲代码", "送外卖"],
    "height": 160
  });
  person.remove("age");
  var m = new Map();
  m["name"] = "李四";
  print(m);
  print(person);
  print(person.keys.toList());
  print(person.values.toList());

// 其他方法:forEach  map  where  any  every
  var shop = ["香蕉", "苹果", "西瓜"];
  shop.forEach((element) {
    print("------" + element);
  });

  List numList = [1, 2, 3, 4];
  var newNumList = numList.map((value) {
    return value * 2;
  });
  print(newNumList);

  List number = [1, 2, 3, 4, 5, 6, 7, 8, 9];

  // 只要集合里面有满足条件的就返回true
  var findle = number.every((element) {
    return element > 5;
  });
  print(findle);

十、运算符

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 赋值运算符
  • 三目运算符
  • 空值运算符
  • 级联运算符

十一、类型转换

// 1.字符串转数字

  // String str1 = "123";
  // var myNum = int.parse(str);

  String str = "123.1";
  var myNum = double.parse(str);
  var isNumber = (myNum is int);
  print(isNumber);

  String price = "";
  try {
    var myNum = double.parse(price);
    print(myNum);
    print((myNum is double));
  } catch (e) {
    print(("报错了。。。。"));
  }


// 2.数字转字符串
var num1 = 123;
var num2 = 123.456;
var num1Str = num1.toString();
var num2Str = num2.toString();
var num2StrD = num2.toStringAsFixed(2); // 保留两位小数
print('${num1Str} ${num1Str.runtimeType}'); // 123 String
print('${num2Str} ${num2Str.runtimeType}'); // 123.456 String
print('${num2StrD} ${num2StrD.runtimeType}'); // 123.46 String

提示:Dart 语言打印是: ${要打印的变量},可以省略 {},但是如果 {} 里面是表达式 就不能省略

十二、循环语句

  • for循环
  • while循环
  • continue 与 break
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342