Flutter Dart基础语法

2019-10-30  本文已影响0人  StevenHu_Sir

1.常量定义

var number;
number = 18;
print('小明的年龄是 $number 岁');

number = '20';  // 注意,变量类型是可以变的
print(number);

final c = 30;   // final修饰的变量只能被申明一次,不可修改
print(c);
  
const d = 50;
print(d);

一些常用的判断属性

// 是否为负数, 大于0即为false
  print(m1.isNegative);
  print(0.isNegative);

  // 是否是有限的
  print(b32.isFinite);
  print(m1.isFinite);

  // 是否是无穷大或者无穷小
  print(m1.isInfinite);

  // 是否为偶数
  print(m1.isEven);

  // 是否为奇数
  print(m1.isOdd);

  // 是否是NaN值
  print(m1.isNaN);
  
  // 数据的符号,-1.0:值小于0、+1.0:值大于0、-0.0/0.0/NaN:值是其本身
  print(21.sign);  // 1
  print(-23.sign); // -1
  print(0.sign);   // 0
  print(-0.sign);  // 0

int数字类型中常用的函数[绝对值 double 字符串]

const m3 = 24;
  
  // 获取绝对值
  print(m3.abs());

  // 转成字符串
  print(m3.toString());

  // 幂次求模; m3的4次幂, 在对3求模
  print(m3.modPow(4, 3)); // 1

  // 返回m3和16的最大公约数
  print(m3.gcd(16));
  
  // 返回m3除以5的余数
  print(m3.remainder(5));

  // 转成double
  print(m3.toDouble());
  
  // 比较大小, 0:相同、1:大于、-1:小于
  print(m3.compareTo(30));

2.操作符

var a = 15;
  var b = 10;

  print(a + b);
  print(a - b);
  print(a * b);
  print(a / b);
  print(a ~/ b);
  print(a % b);

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

  var c = 1.23;
  
  print(c.floor());
  print(c.round());
  print(c.floor());
  print(c.ceil());
  print(c.toInt());

3.字符串操作

void main() {
  var str1 = 'Hello';                   // 单引号创建字符串
  var str2 = "Hello2";                  // 双引号创建字符串
  // 三引号创建多行字符串
  var str3 = '''你好
              欢迎光临''';
  var str4 = r'双11真给力';
  var str5 = 'a|b|c|d|e|f|g';
  var str6 = '小学一年级';

  print(str1.toUpperCase());
  print(str2.length);
  print(str3.startsWith('你好'));//以..开始
  print(str4);
  print(str5.split('|'));//分割,切割
  print(str6.replaceAll('小', '大'));//替换字符串
  /*
  输出结果:
    I/flutter (22616): HELLO
    I/flutter (22616): 6
    I/flutter (22616): true
    I/flutter (22616): 双11真给力
    I/flutter (22616): [a, b, c, d, e, f, g]
    I/flutter (22616): 大学一年级
  */
}

4.list数组操作

void test() {
    var list = ['one', 'two', 'three'];

    print('list.length:${list.length}'); // 获取长度

    list.add('four'); // 增加一个元素
    print(list);

    list.remove('two'); // 移除一个元素
    print(list);

    list.insert(1, 'two'); // 在指定位置插入一个元素
    print(list);

    print(list.indexOf('one')); // 获取元素所在位置

    print(list.sublist(2)); // 去除前2个元素,并返回一个新的List

    list.forEach(print); // 传入一个方法

    list.shuffle(); // 随机打乱List里元素的顺序
    print(list);

    print(list.asMap()); // 把list转换成map类型

    var companies = ['阿里巴巴', '今日头条', '爱奇艺'];
    print(!companies.isEmpty);

    // forEach 遍历
    companies.forEach((company) => print('$company在使用Flutter'));

    // .map 遍历
    var flutterCompanies = companies.map((company) => '$company在使用Flutter');
    flutterCompanies.forEach(print);

    // .map 合成数组
    var flutterCompaniesList =
        companies.map((company) => '$company在使用Flutter').toList();
    print(flutterCompaniesList);
    
    // 返回满足where条件的对象
    print(companies.where((company) => company == '阿里巴巴')); 
    
    // 只要存在一个即可
    print(companies.any((company) => company == '阿里巴巴')); 
    
    // 除了阿里巴巴,还有今日头条,爱奇艺
    print(companies.every((company) => company == '阿里巴巴')); 

    /*输出结果
    I/flutter (22616): list.length:3
    I/flutter (22616): [one, two, three, four]
    I/flutter (22616): [one, three, four]
    I/flutter (22616): [one, two, three, four]
    I/flutter (22616): 0
    I/flutter (22616): [three, four]
    I/flutter (22616): one
    I/flutter (22616): two
    I/flutter (22616): three
    I/flutter (22616): four
    I/flutter (22616): [two, four, one, three]
    I/flutter (22616): {0: two, 1: four, 2: one, 3: three}
    I/flutter (22616): true
    I/flutter (22616): 阿里巴巴在使用Flutter
    I/flutter (22616): 今日头条在使用Flutter
    I/flutter (22616): 爱奇艺在使用Flutter
    I/flutter (22616): 阿里巴巴在使用Flutter
    I/flutter (22616): 今日头条在使用Flutter
    I/flutter (22616): 爱奇艺在使用Flutter
    I/flutter (22616): [阿里巴巴在使用Flutter, 今日头条在使用Flutter, 爱奇艺在使用Flutter]
    I/flutter (22616): (阿里巴巴)
    I/flutter (22616): true
    I/flutter (22616): false
    */
  }

5.运算符

1.三目运算符

2.~/ 除法, 返回一个整数结果:(取商)

var a = 12~/ 7;
print(a);//结果是1

3.级联操作符

类似链式调用
例如

ITTeacher()
      ..doWork()
      ..fixComputer();

4.as , is 与 is!

as : 判断属于某种类型
is : 如果对象具有指定的类型,则为true
is! : 如果对象具有指定的类型,则为false

5.异常捕获

try catch 连用

try {
// 捕获特定类型的异常}
catch(e){
// 报错信息打印
print(e);
}

6.补占位符

String padLeft(int width, [String padding = ' ']);
String padRight(int width, [String padding = ' ']);

在字符串前后补占位符
参数一: 想要得到的字符串的位数
参数二: 位数不足时, 补充的字符

const str3 = '12';
print(str3.padLeft(2, '0')); //12
print(str3.padRight(3, '0')); // 120

7.替换字符

// 只能替换一次, 参数三为开始的索引值, 默认0
String replaceFirst(Pattern from, String to, [int startIndex = 0]);

// 替换所有符合条件的字符(字符串)
String replaceAll(Pattern from, String replace);

// 替换某一区间的字符
String replaceRange(int start, int end, String replacement);

// 示例如下:
// 替换字符串
 const str4 = 'titanjun12--0123';
  print(str4.replaceFirst('t', 'T'));  // Titanjun12--0123
  print(str4.replaceFirst('12', '21', 10));   //titanjun12--0213

  // 全部替换
  print(str4.replaceAll('12', '21'));  //titanjun21--0213
  print(str4.replaceAll('t', 'T'));  //TiTanjun12--0123

  // 区间替换
  print(str4.replaceRange(0, 5, 'top'));  //topjun12--0123

8.List相关操作

8.1 filled

var l2 = new List.filled(3, 'l');  //[l, l, l]
  var l3 = new List.filled(2, []);   // [[], []]
  l3[0].add(12);   
  print(l3);      // [[12], [12]]

8.2 from

var l5 = new List.from([1, 2, 3, 4]);
l5.add(5);
print(l5);   // [1, 2, 3, 4, 5]

// 下面的add方法会报错
var l5 = new List.from([1, 2, 3, 4], growable: false);
l5.add(5);

8.3 generate

var l4 = new List.generate(3, (int i) => i * i);
l4.add(14);
print(l4);
// [0, 1, 4, 14]

8.4 unmodifiable

var l6 = new List.unmodifiable([1, 2, 3, 4]);

参考:
https://www.jianshu.com/p/1070fb5bc25b

上一篇下一篇

猜你喜欢

热点阅读