Flutter记录的第一天 Dart语法学习(一)

了解Dart

强类型编程语言,Dart之下一切皆对象

Dart 是一种跨平台的客户端开发语言。具有专门为客户端优化、高生产力、快速高效、可移植易学的风格。Dart主要由Google负责开发和维护

继续学习查看

Flutter记录的第一天 Dart语法学习(二)

重要概念

  • 在 Dart 中 甚至连 数字、方法和 null 都是对象。所有的对象都继承于 Object 类

  • Object所有Dart对象的基类,所以每个其他Dart类都是Object的子类,Object在编译时检查类型

  • 虽然dart语言通过var进行运行时类型推导,但是Dart是强类型的语言,类型一旦确定就不可以改变

  • Dart 没有 public、 protected、 和 private 关键字。如果一个标识符以 (_) 开头,则该标识符 在库内是私有

基本语法

代码居多可复制自行运行学习

1、变量和常量

//变量和常量
var name = 'Bob';  //会指定变量类型,后面是不能修改name的类型   如现在是String  修改成int会报错
Object name1 = '张三';//不会指定变量类型,后面能修改name的类型   如现在是String  修改成int
dynamic name2 = '李四'; //同Object  dynamic任意的意思

 2、数字类型

///数字类型
num a = 10;//数字类型    可以代表整数,也可以代表小数
//a = 12.5;
int b = 15;       //整数    继承 num
double y = 1.1;   //小数    继承 num

void main() {
  int d = 15;
  print(d.isEven);//是否基数
  print(d.isOdd);//是否偶数

  //java一样
  print("a++ =${a++}");//10
  print("++a =${++a}");//12
  print("a-- =${a--}");//12
  print("--a =${--a}");//10

  int e= -100;
  print(e.abs());//绝对值

  double f = 10.5;
  print(f.round());//四舍五入
  print(f.floor());//不大于它的最大整数
  print(f.ceil());//不小于它的最大整数

  print(f.toInt());//转成整数
  print(d.toDouble());//转成小数
}

3、字符串和bool

//字符串 
void main() {
    String str1 = "hello";// ''
    //""" 3个显示多行
    String str2 = """hello 
                    dart""";// '''
    // \n 换行
    String str3 = "sdffksdjf \n lskdf";

    // +  和java一样
    print(str1 + str2);
    // *  字符串复制两遍
    print(str1 * 2);
    // ==  比内容
    print(str1 == str2);
    //区第几个字符   下方值 h
    print(str1[0]);

    int a = 1;
    int b = 2;
    print('a + b = ${a + b}');//值 a+b=3
    print('a = $a');//值 a=1
}

///bool   true   false
void main() {
  bool isToor = false;
  bool isToor1 = true;
}

小知识类型互转

  // String 转 int
  var one = int.parse('1');
  assert(one == 1);

  // String 转 double
  var onePointOne = double.parse('1.1');
  assert(onePointOne == 1.1);

  // int 转 String
  String oneAsString = 1.toString();
  assert(oneAsString == '1');

  // double 转 String
  String piAsString = 3.14159.toStringAsFixed(2);
  assert(piAsString == '3.14');

4、list集合

///数组
var list=[1,2,3];//创建List:
var list1=const[1,2,3];//创建不可变的List:
var list2 =new List();//构造创建:

//常用操作:[],length;add(),insert();remove(),clear();indexOf(),lastIndexOf();
//sort(),sublist();shuffle(),asMap(),forEach();
void main() {
  var list1 = [1, 2, 3, "Dart", true];
  print(list1);//[1, 2, 3, Dart, true]
  print(list1[1]);//2
  list1[1] = "huangxiaoguo";
  print(list1);//[1, huangxiaoguo, 3, Dart, true]

  //不可变的List
  var list2 = const [1, 2, 3];
  var list3 = new List();

  //常用操作
  var list = ["Hello", "Dart"];
  print(list[1]);//Dart
  print(list.length);//2

  list.add("New");
  print(list);//[Hello, Dart, New]

  list.insert(1, "aaa");
  print(list);//[Hello, aaa, Dart, New]

  list.remove("aaa");
  print(list);//[Hello, Dart, New]

  print(list.indexOf("Dart"));//1

  list.sort();//排序
  print(list);//[Dart, Hello, New]

  print(list.sublist(2));//[New]

  list.forEach(print);//循环

  list.clear();//清除
  print(list);//[]
}

5、map

///map
//创建Map:var language={“first”:“Dart”,“two”:“java”};
//创建不可变Map:var language=const{“first”:“Dart”,“two”:“java”};
//构造创建:var language=new Map();
//[],length;isEmpty(),isNotEmpty();keys,values;containsKey(),containsValue();
//remove();forEach();asMap();
void main() {
  var map1 = {"first": "Dart", "two": "java", 1: true};
  print(map1); //{first: Dart, two: java, 1: true}
  print(map1["first"]);//Dart
  print(map1[1]);//true

  map1[1] = false;
  print(map1);//{first: Dart, two: java, 1: false}

  var language = const {"first": "Dart", "two": "java"};
  var language1 = new Map();

  //常用操作
  var map = {"first": "Dart", "two": "java", "three": "js"};
  print(map.length);//3

  print(map.keys);//(first, two, three)
  print(map.values);// (Dart, java, js)

  //contains 包含
  print(map.containsKey("first"));//true
  print(map.containsValue("python"));//false

  map.remove("two");//
  print(map);//{first: Dart, three: js}

  ///循环
  //key=first,value=Dart
  //key=three,value=js
  map.forEach(f);

  var list=["1","2","3"];
  print(list.asMap());//{0: 1, 1: 2, 2: 3}
}

void f(key, value) {
  print("key=$key,value=$value");
}

6、运算符

///关系运算符
void main(List<String> args) {
  int a = 5;
  int b = 9;
  print("a==b =${a == b}");//a==b =false
  print("a!=b =${a != b}");//a!=b =true
  print("a>b =${a > b}");//a>b =false
  print("a<b =${a < b}");//a<b =true
  print("a>=b =${a >= b}");//  a>=b =false
  print("a<=b =${a <= b}");//a<=b =true

  String c = "466";
  String d = "121";
  print("c==d =${c == d}");//  c==d =false
  String m = "huang";
  String n = "huang";
  print("m==n =${m == n}");//  m==n =true
}
///赋值运算符
void main(List<String> args) {
  int a = 11;

  int b, c = 5;

  b ??= 10;
  c ??= 10;
  //??=表示如果本身为空的时候进行赋值,如果不为空就不会再进行赋值
  print("b=$b,c=$c");//b=10,c=5

  print("a+=2 ==>${a += 2}");//a+=2 ==>13
  print("a-=2 ==>${a -= 2}");//a-=2 ==>11
  print("a*=2 ==>${a *= 2}");//a*=2 ==>22
  double m = 10;
  print("a/=2 ==>${m /= 2}");//a/=2 ==>5.0
  print("a%=2 ==>${a %= 2}");//a%=2 ==>0
  a=11;
  print("a~/=2 ==>${a ~/= 2}");//a~/=2 ==>5
}

///条件表达式
///三目表达式:condition? expr1:expr2
///??运算符:expr1:expr2
void main(List<String> args) {
  int gender = 1;
  String str = gender == 0 ? "Male" : "Frmale=$gender";
  print(str);//Frmale=1

  String a;
  String b = "java";
  String c = a ?? b;
  //a为空的时候打印b,a不为空是打印a
  print(c);//java

  a = "huang";
  b = "java";
  c = a ?? b;
  print(c);//huang
}

7、控制流语句

///条件语句
///if 语句
///if…else if语句
///if…else if…else语句
void main(List<String> args) {
  int score = 60;
  if (score > 90) {
    print("优秀");
  } else if (score > 60) {
    print("良好");
  } else if (score == 60) {
    print("及格");
  } else {
    print("不及格");
  }
  //及格
}

///循环语句
///for循环
///for…in循环
void main(List<String> args) {
  var list = [1, 2, 3, 4, 5];
  for (var index = 0; index < list.length; index++) {
    print(list[index]);
  }
  //1   2   3   4   5
  print("-----------------------------------------");
  for (var item in list) {
    print(item);
  }
  //1   2   3   4   5
}

///while语句
///while循环
///do…while循环
void main(List<String> args) {
  int count=0;
  while(count<5){
    print(count++);
  }
  //0   1   2   3   4
  print("--------------$count---------------");
  //--------------5---------------
  do{
    print(count--);
  }while(count>-3 && count<5);
  //5  4  3  2  1  0  -1  -2
}

///break和continue
///终止循环:break
///跳出当前循环:continue
void main(List<String> args) {
  var list = [1, 2, 3, 4, 5];
  for (var item in list) {
    if (item == 2) {
      break;
    }
    print(item);
  }
  //1
  print("------------------------");
  for (var item in list) {
    if (item == 2) {
      continue;
    }
    print(item);
  }
  // 1 3 4 5
  print("------------------------");
  var list2=[9,8,7];
  for (var item in list) {
    for (var item2 in list2) {
      if(item2==8){
        break;
      }
      print(item2);
    }
  }
  //9 9 9 9 9
}

///switch…case语句
///比较类型:num ,String ,编译期常量,对象,枚举
///非空case必须有一个break
///default处理默认情况
///continue跳转标签(特有,其他语言少见)
void main(List<String> args) {
  String language = "H5";
  switch (language) {
    case "Dart":
      print("---------Dart-------");
      break;
    case "H5":
      print("---------H5-------");
      break;
    default:
      print("-----none------");
      break;
  }
  //---------H5-------
  print("-------------------------------");
  switch (language) {
    case "Dart":
      print("---------Dart-------");
      break;
    case "H5":
      print("---------H5-------");
      continue D;
    D:
    case "JAVA":
      print("---------JAVA-------");
      break;
    default:
      print("------none-----");
      break;
  }
  //---------H5-------
  //---------JAVA-------
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值