专业的编程技术博客社区

网站首页 > 博客文章 正文

Flutter 学习之dart语法(flutter attach)

baijin 2024-08-23 10:39:18 博客文章 4 ℃ 0 评论

1,变量声明:

请牢记他们之间的关系和用法。

可以使用 varObjectdynamic 关键字,任意类型给予赋值

三个的区别在于

var 是C# 3中引入的其实它仅仅只是一个语法. var本身并不是一种类型,Var声明的变量在赋值的那一刻,就已经决定了它是什么类型.

Object 所有对象的父类,object之所以能够被赋值为任意类型的原因,其实都知道,因为所有的类型都派生自object.

dynamic dynamic运行时确定类型,并不是在编译时候。

下面是个例子,请捂住你们的眼睛,猜一下。哪个是错的。在运行时错误,还是编译时错误呢


For example;

  • NO.1

var a = 1;

a = "Test";


  • NO.2

object a = 1;

a = "Test";


  • NO.3

dynamic a = "test";

a++


答案:

No.1 编译的时候错误, 因为var类型在赋值的那一刻就决定它是什么类型,int 是不可以转化为string的。

No.2 是对的;

NO.3 运行时错误,dynamic编译的时候不会检测,运行的时候string是不会自增长的。

2,常量声明:特殊字符 final ,const

之间的区别:

final 要求变量只能初始化一次

const:声明时必须初始化,并且赋值必需为编译时常量。


大家看下以下例子:

var a = 1;

final f = 3;

const d = 2;

final b = a;//编译器通过

const c = d;//报错:Const variables must be initialized with a constant value

const e = a;

小细节

final或者const修饰的变量,变量类型可以省略。

//可以省略int类型的声明

final test = 111;

//等同于上面

final int test = 111;

注意flnalconst 都不能和 var 同时使用

3,数值型

Dart 中只提供了两种类型: int ,double,numnum 包含整形int ,浮点型double);

void main(){

num a = 10; // 整形

a = 20.1; // 浮点型

int i = 10;

i = 10.1; // 这个地方会报错,因为将 int 型的数据改为 double

double d = 20.1;

d = 20; // 这个地方会报错,因为将 double 型的数据改为 int

}

4,数值型的操作

运算符: + (加)、 -(减) 、*(乘) 、/ (除)、 ~/(取整) 、 %(取余)

常用属性: isNaNisEvenisOdd

常用方法:abs()、round()、floorl()、ceil()、toInt()、toDouble()

For example; // (assert结果不为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');

5,字符串类型

1,在 dart 中居然可以使用 单引号 和 双引号声明字符串。这两种方式都可以。

 void main() {
 String string = '单引号声明字符串';
 String string1 = "双引号声明字符串";
 String str7 = "算了,还有正常一点" + ",使用 + 来拼接 ";
 }
 

6, bool

  • Dart 是强 bool 类型检查,只有bool 类型的值是true 才被认为是true
  • 只有两个对象具有bool类型:truefalse,它们都是编译时常量。
  • Dart的类型安全意味着可以使用 if(nonbooleanValue)assert(nonbooleanValue) 等代码, 相反Dart使用的是显式的检查值。
  • assert 是语言内置的断言函数,仅在检查模式下有效
  • 在开发过程中, 除非条件为真,否则会引发异常。(断言失败则程序立刻终止)。
String name = 'Bob';
if (name != null) {
 print('You have a name!');
}
assert(name == null);
_counter++;

打印为You have a name!

I/flutter (12455): Another exception was thrown: 'file:///home/byron/Downloads/video/flutter_module/lib/main.dart': Failed assertion: line 42 pos 14: 'name == null': is not true.

I/flutter (12455): You have a name!

但不会影响程序正常运行!

下个章节我们将进行函数学习。小伙伴们,好记性不如烂笔头,多多练习数据类型。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表