Dart入门--基础语法(一)

字符串篇

定义类型的时候可以类似于JavaScript写var,系统可以自动推断数据类型,也可以自己写类型

void main()
{
  var name = "Ning";
  var goal = " is going to study Dart and Fluttery.";
  print(name+goal);
}

 或

void main()
{
  String name = "Ning";
  String goal = " is going to study Dart and Fluttery.";
  print(name+goal);
}
//截取字符串
  String str = "Dart is fun";
  String substr = str.substring(0,4);//截取从位置0到4的字符串
  print(substr);
//在字符串中插入字符串
  String name = "Ning";
  print('My name is ${name}');
//输出字符串的Unicode编码
  String name = "Ning";
  print(name.codeUnitAt(0));//输出位置0的
  print(name.codeUnits);//输出整个的,是一个list
//去掉字符串前后空格
  String str = "  Dart  ";
  print(str.trimLeft());//去左边
  print(str.trimRight());//去右边
  print(str.trim());//两边都去
//全部转为大写(小写)
  String str = "Dart";
  print(str.toUpperCase());
  print(str.toLowerCase());
//字符串的拆分
  String str = "Hello world!";
  print(str.split(" "));
//判断是否包含某字符或字符串
  String str = 'Dart is fun';
  print(str.contains('f'));
  print(str.contains(new RegExp(r'[A-Z]')));//是否包含大写字母
  print(str.contains('t', 3));//指定位置
  print(str.contains(new RegExp(r'[A-Z]'), 0));//指定位置
//获取指定字符出现位置
  String str = 'Pianist';

  print(str.indexOf('ist'));
  print(str.indexOf(new RegExp(r'[A-Z][a-z]')));//获取类似于Aa字符串的位置

  print(str.lastIndexOf('a'));
  print(str.lastIndexOf(new RegExp(r'a(r|n)')));//获取an或ar的位置
//替换所有
  String str = "Pianist,artist";
  print(str.replaceAll(new RegExp(r'ist'), 'ists'));//用ists替换所有ist

数字与布尔篇

void main()
{
  int a = -93;
  print(a.isNegative);// a是否为负数

  double b = 64.742;
  print(b.sign);// 返回b的符号,-1.0:值小于0、+1.0:值大于0、-0.0/0.0/NaN:值是其本身

  int c = 13;
  print(c.isOdd);// c是否为奇数
  print(c.isEven);// c是否为偶数
}
void main()
{
    int figureA = -93;
    print(figureA.abs());// 返回figureA的绝对值
    print(figureA.toString());// 返回figureA的字符串

    double figureB = 64.742;
    print(figureB.toInt());// 返回figureB的整数值
    print(figureB.toDouble());// 返回figureB的双精度值
    print(figureB.ceilToDouble());// 返回大于figureB的双精度值(整数)
    print(figureB.floorToDouble()); // 返回小于figureB的双精度值(整数)
    print(figureB.roundToDouble());// 返回figureB四舍五入的双精度值(整数)
    print(figureB.toStringAsFixed(2));// 返回figureB保留几位小数的字符串

    int figureC = 31;
    
    print(figureC.compareTo(20));// figureC对比其他整数,0:相同、1:大于、-1:小于
    
    print(figureC.clamp(20, 25));// 将figureC控制在指定区间的整数

    int figureD = 12;
    
    print(figureD.gcd(18));// 返回figureD与其他整数的最大公约数
    print(figureD.remainder(18));// 返回figureDg与其他整数的截取余数
    print(figureD.toStringAsExponential(2));// 返回figureD几次幂的字符串
}

正则表达式

    RegExp exp = new RegExp(r"(\w+)");
    print(exp.isCaseSensitive);// 正则表达式是否大小写敏感(区分大小写)
    print(exp.isMultiLine);// 正则表达式是否多行
    print(exp.pattern);// 返回源正则表达式字符串
void main()
{
    RegExp exp = new RegExp(r"(\w)");
    
    print(exp.allMatches("abc cde"));// 返回正则表达式匹配项的可迭代对象

    print(exp.firstMatch("w"));// 搜索并返回第一个匹配项,没有则返回null
    
    print(exp.hasMatch("as"));// 正则表达式是否找到匹配项
    
    print(exp.matchAsPrefix("ab cd", 3));// 从第几个字符开始匹配正则表达式
    
    print(exp.stringMatch("abc def "));// 返回正则表达式的第一个匹配字符串
    
    print(exp.toString());// 返回正则表达式的字符串表示
}

  正则表达式好难懂,对小白太不友好了QAQ

 变量

变量的声明除了具体的类型int、double、String和bool以外,还可以用var声明变量。

但是,一旦类型确定,就无法更改类型。

变量默认值为null

在dart中,万物皆对象

var s = "dart is fun";
var n = 16;
var b = true;
var d = 3.14;
print(s is String); // true
print(n is int); // true
print(b is bool); // true;
print(d is double); // true;
 
s = 12; // 报错,string类型无法指定为int类型
 
var nullVar;
print(nullVar == null); // true
int nullInt;
print(nullInt == null); // true
bool nullBool;
print(nullBool == null); // true

 然后如果变量的类型是需要变化的,那么可以用dynamic来声明

void main()
{
  dynamic a = "dart is fun";
  print(a is String);//true
  a = 12;//把a的类型从String转变为int
  print(a is int);//true
}

常量 

常量可以用final和const的来声明。

void main()
{
  final a = 6;
  const b = 6;

  var n = 10;
  final c = n;
  // const d = n;//报错,不是一个常量表达式

  final e = new DateTime.now();
  // const f = new DateTime.now();//报错,因为不是一个常量表达式

  // final g = const [n,2,3];//报错,不是常量表达式
  final h = const [b,2,3];

}

final和const的区别。

1. final的变量只初始化一次,可以是编译时的常量,也可以不是。const必须是编译时的常量。(一个确定的数值或字符串)

2. final只是在第一次运行的时候确定常量值,const必须指定常量值。比如:final可以是一个函数的计算结果,但是const不行。

3. const可以修饰值,final不可以。const的值必须是const, final可以不是。
 

慢慢学叭

一步一步来吧

我只是在追随大佬的脚步

本文参考博客:https://blog.csdn.net/hekaiyou/article/details/51310381

https://blog.csdn.net/shanyuu/article/details/82903047

发布了99 篇原创文章 · 获赞 21 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43721423/article/details/94392062