1. import 'package:hello_world/hello_world.dart' as hello_world;
    2. main(List<String> arguments) {
    3. //Dart 语言本质上是动态类型语言,类型是可选的
    4. //可以使用 var 声明变量,也可以使用类型来声明变量
    5. //字符串赋值的时候,可以使用单引号,也可以使用双引号
    6. var str1 = "OK?";
    7. //如果使用的是双引号,可以内嵌单引号
    8. //当然,如果使用的是单引号,可以内嵌双引号,否则需要“\”转义
    9. //String str2 = ‘It\’s ok!’;
    10. String str2 = "It's ok!";
    11. //使用三个单引号或者双引号可以多行字符串赋值
    12. var str3 = """Dart Lang
    13. Hello,World!""";
    14. //在Dart中,相邻的字符串在编译的时候会自动连接
    15. //这里发现一个问题,如果多个字符串相邻,中间的字符串不能为空,否则报错
    16. //但是如果单引号和双引号相邻,即使是空值也不会报错,但相信没有人这么做
    17. //var name = 'Wang''''Jianfei'; 报错
    18. var name = 'wong'' ''jianfei';
    19. //assert 是语言内置的断言函数,仅在检查模式下有效
    20. //如果断言失败则程序立刻终止
    21. assert(name == "wong jianfei");
    22. //Dart中字符串不支持“+”操作符,如str1 + str2
    23. //如果要链接字符串,除了上面诉说,相邻字符串自动连接外
    24. //还可以使用“$”插入变量的值
    25. print("name: $name");
    26. //声明原始字符串,直接在字符串前加字符“r”
    27. //可以避免“\”的转义作用,在正则表达式里特别有用
    28. print(r"换行符:\n");
    29. //Dart中数值是num,它有两个子类型:int 和 double
    30. //int是任意长度的整数,double是双精度浮点数
    31. var hex = 23445;
    32. print("整型转换为16进制:$hex -> 0x${hex.toRadixString(16).toUpperCase()}");
    33. // const和final定义的都是常量,值不能改变
    34. var i = 10;
    35. const j = 10;
    36. final k = 10;
    37. // const定义的是编译时常量,只能用编译时常量来初始化
    38. // final定义的常量可以用变量来初始化
    39. // 简单来说,const就是写死的常量,final可以通过函数返回的结果赋值进行初始化
    40. final time1 = new DateTime.now(); //Ok
    41. // const time2 = new DateTime.now(); //Error,new DateTime.now()不是const常量
    42. const list1 = const[1,2,3];//Ok
    43. const list2 = [1,2,3];//Error
    44. final list3 = [1,2,3];//Ok
    45. final list4 = const[1,2,3];//Ok
    46. // final list5 = const[new DateTime.now(),2,3];//Error,const右边必须是常量
    47. }