Dart语言入门学习-基本概念(一)

我们知道flutter使用的是dart语言,所以学习flutter之前最好学习一下dart。
一个简单的dart程序

// 函数的定义
printInteger(int aNumber) {
  print('The number is $aNumber.');
}

main() {
  var number = 42; 
  printInteger(number);//函数的调用
}

${expression} 的方式内嵌表达式。 如果表达式是一个标识符,则 {} 可以省略。看个例子

void main() {
  var s = 'this is dart';
  printString(s);
}
printString(String s) {
  print('this is $s.'); 
  print('this is ${s.toUpperCase()}');
}

运行结果为

this is this is dart.
this is THIS IS DART

概念

  • 任何变量都是一个对象,并且每个对象都是类的一个实例。甚至数字,函数,和null也都是对象,所有的对象都继承Object类
  • Dart 可以推断类型,如果要明确说明不需要任何类型, 需要使用特殊类型 dynamic
  • Dart 支持泛型,比如 List (整数列表)或 List (任何类型的对象列表)。
  • 与 Java 不同,Dart 没有关键字 “public” , “protected” 和 “private” 。 如果标识符以下划线(_)开头,则它相对于库是私有的。

关键字

下面是dart语言的一些关键字
在这里插入图片描述

变量

初始化一个变量

var name = '山大王';

name 变量的类型被推断为 String,当然还可以指定类型

String name = '山大王';

如果一个对象没有被严格的限制为一个类型,可以指定他为Object或dynamic类型

dynamic name = '山大王';

默认值

未被初始化的变量都有一个为null的默认值,即使变量是数字类型默认值也被初始化为null

int lineCount;
assert(lineCount == null);

Final and const

如果你不打算改变一个变量,使用final或者const,如果是类级别的需要加static,类似于java中的静态。const类似于C语言中经常定义的常数。 实例变量可以是 final 类型但不能是 const 类型,如果需要在编译时就固定变量的值,可以使用 const 类型变量。final和const都可以定义为一个常量,但const比final更严格,赋值给final的可以是一个变量,但赋值给const的必须是一个常量,举个例子

void main() {
   final name = '山大王'; // 正确
   const sex ='男';// 正确
  
  // 正确,可以把一个变量name赋值给final定义的name1
   final name1=name;
   final sex1=sex;//正确
  
  // 错误,不可以把一个变量赋值给const定义的name2,即使name被定义为final也不行
   const name2=name;
   const sex2=sex;//正确
}

所以上面的把final定义的name赋值给const定义的name2就会下面的错误
在这里插入图片描述

posted @ 2019-05-13 14:39  数据结构和算法  阅读(184)  评论(0编辑  收藏  举报