
本文介绍了Flutter-从入门到项目 04:Dart语法快速掌握(上)求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。
对技术面试,学习经验等有一些体会,在此分享。
使用Flutter内置美丽的 Material Design
和 Cupertino
(iOS风格)widget
、丰富的motion API
、平滑而自然的滑动效果和平台感知,为您的用户带来全新体验。
但是这些丝滑的界面也是一行一行的 Dart代码
构建而成,所以了解和掌握 Dart语法
非常重要
我知道可能这一篇文章你不会详细读 ===> 换成是我,我也不会,谁会那么枯燥的啃语法,尤其这么一个快节奏的时代.但是 Dart语法
太重要了🎯🎯🎯,希望你这一遍粗略的读一下,然后点赞收藏👍👍👍,等待你针对某一个地方语法不明确的时候.可以根据标签目录,快速查阅📚📚📚(就当字典工具一样)
那么接下来我们开始从变量和操作符到类和库给大家一点一点介绍一下! 详细的内容大家可以参考Dart官方文档:
ps: 这里给大家推荐一下 Open DartPad 就类似 Swift的 Playground
是不是感觉也是非常便利,其实我们简单的语法测试,完全可以用这个,简单明了!!!😸
① Dart 的重要概念
-
🎯每个变量都是一个对象,每个对象是一个类的实例。甚至数字,函数,和null都是对象。所有对象都继承自 Object类
-
🎯指定静态类型(如 num前面的例子中)讲清意图,用
tools
开启静态检查,但它是可选的。 (可能注意到当你调试代码,没有指定类型的变量会得到一个特殊的类型:dynamic
) -
🎯
Dart
解析所有的代码运行之前。可以对Dart提供提示,例如,通过使用类型或编译时间常数来捕获错误或帮助代码运行更快。 -
🎯
Dart
支持顶级函数(如main()
)也支持类或者对象(静态和实例方法分别支持)里的函数。还可以在函数里创建函数(嵌套或局部功能)。 -
🎯类似的,
Dart
支持顶级变量,以及依赖于类或对象(静态变量和实例变量)变量。实例变量有时被称为域或属性。 -
🎯与
Java
不同,Dart
不具备关键字public,protected和private
。如果一个标识符以下划线(_)
开始,那么它和它的库都是私有的。有关详细信息,请参阅 Libraries and visibility。 -
🎯标识符可以字母或
(_)
开始,或者是字符加数字的组合开头。 -
🎯有时,判断是一个表达式还是一个语句会很重要,所以我们要准确了解这两个单词。
-
🎯
Dart tools
可报告两类问题:警告(warning ⚠️)和错误(error ❎)。警告只是迹象表明,代码可能无法正常工作,但他们不会阻止程序的执行。错误可以是编译时或运行时,编译时的错误阻止代码执行;当代码执行时一个运行时的错误会导致一个 异常(exception)被抛出。 -
🎯Dart有两种运行模式:生产 (
production
) 和检查 (checked
) 。我们建议在检查模式开发和调试,并将其部署到生产模式。 -
🎯
Production mode
是Dart程序一个速度优化的默认运行模式。Production mode
忽略 断言语句(assert statements) 和静态类型。 -
🎯
Checked mode
是开发人员友好的方式,可以帮助你在运行时捕捉一些类型的错误。例如,如果分配一个非数字来声明为一个num
变量,然后在检查模式会抛出异常。 -
🎯编程语言并不是孤立存在的,Dart也是这样,他由语言规范、虚拟机、类库和工具等组成:
-
SDK:SDK 包含
Dart VM、dart2js、Pub
、库和工具。 -
Dartium:内嵌
Dart VM
的Chromium
,可以在浏览器中直接执行dart 代码
。 -
Dart2js:将
Dart
代码编译为JavaScript
的工具。 -
Dart Editor:基于
Eclipse
的全功能 IDE,并包含以上所有工具。支持代码补全、代码导航、快速修正、重构、调试等功能。
-
② 关键字
关键字 | 关键字 | 关键字 | 关键字 |
---|---|---|---|
abstract 2 | else | import 2 | super |
as 2 | enum | in | switch |
assert | export 2 | interface 2 | sync 1 |
async 1 | extends | is | this |
await 3 | extension 2 | library 2 | throw |
break | external 2 | mixin 2 | true |
case | factory 2 | new | try |
catch | false | null | typedef 2 |
class | final | on 1 | var |
const | finally | operator 2 | void |
continue | for | part 2 | while |
covariant 2 | Function 2 | rethrow | with |
default | get 2 | return | yield 3 |
deferred 2 | hide 1 | set 2 | static 2 |
do | if | show 1 | implements 2 |
dynamic 2 |
-
带有上标1的单词是上下文关键词,它们只有在特定的地方才有意义。它们到处都是有效的标识符。
-
带有上标2的单词是内置标识符。为了简化将
JavaScript
代码移植到Dart
的任务,这些关键字在大多数地方都是有效的标识符,但它们不能用作类或类型名,也不能用作导入前缀。 -
带有上标3的单词是与Dart 1.0发布后添加的异步支持相关的较新的、有限的保留单词。不能在任何标记为
async
、async*
或sync*
的函数体中使用await
或yield
作为标识符。 -
表中的所有其他字都是保留字,不能作为标识符。
-
标识符是给予程序中元素的名称,如变量,函数等。标识符的规则是
标识符可以包括字符和数字。 但是,标识符不能以数字开头。- 除下划线(_)或美元符号($)外,标识符不能包含特殊符号。
- 标识符不能是关键字。
- 它们必须是独一无二的
- 标识符区分大小写。
- 标识符不能包含空格。
有效标识符 | 无效标识符 |
---|---|
firstName | Var |
first_name | first name |
num1 | first-name |
$result | 1number |
③ Dart面向对象思想
Dart是一种面向对象的语言。 面向对象是一种遵循真实世界建模的软件开发范例。 Object Orientation
将程序视为通过称为方法的机制相互通信的对象集合。
A: 对象
对象 – 对象是任何实体的实时表示。 根据 Grady Brooch
,每个对象必须具有三个功能
- 状态 – 由对象的属性描述。
- 行为 – 描述对象的行为方式。
- 标识 – 将对象与一组类似此类对象区分开的唯一值。
类
类 – OOP
方面的类是创建对象的蓝图。 类封装了对象的数据。
方法
方法 – 方法促进对象之间的通信。
// main入口函数 void main() { // 面向对象 KCClass cls = new KCClass(); cls.sayHello(); } class KCClass{ void sayHello(){ print('Hello Dart'); } }
④ 变量 & 常量
1: 变量
下面我们开始初始化一个变量 : name
很简单,跟我们开发iOS Android 没有太多的去呗
// 变量声明初始化 void varibleFunc(){ var name = 'cooci'; dynamic nickName = 'KC'; Object person = '酷C'; // 显示声明将被推断类型, 可以使用String显示声明字符串类型 String company = 'LG' ; print('i am: $name,$nickName,$person ,$company'); }
变量存储引用。名为 name
的变量包含对值为“ cooci” 的字符串对象的引用。
name
变量的类型被推断为 String
,声明没有静态类型的变量被隐式声明为动态。 也可以使用 dynamic关键字
代替 var关键字
声明变量,请参考design guidelines指定Object
或者 dynamic
。
显示声明将被推断类型, 可以使用String
显示声明字符串类型
2: 默认值
未初始化的变量具有 null
的初始值。即使数字类型变量最初为 null ,因为数字是对象。
// 默认值 int age; assert(age == null); print(age); //打印结果为null,证明数字类型初始化值是null
3: Final and const
如果您从未打算更改变量,可以使用 final
或 const
来代替 var
或添加到类型之外。final变量
只能设置一次; const变量
是编译时常量。(Const变量
隐式为final
。)最终的顶级变量或类变量在第一次使用时进行初始化。
// Final and const // Final and const final student = 'JZ'; final String studentName = '家振'; print('student = ,${[student,studentName]}'); // 被 final 或 const 修饰的变量无法再去修改其值。 // student = 'chen'; // a final variable, can only be set once const teacher = 'Kody'; // 这样写,编译器提示:Constant variables can't be assigned a value // teacher = 'Cat'; // flnal 或者 const 不能和 var 同时使用 // Members can't be declared to be both 'const' and 'var' // const var String teacherName = 'CC'; // final var String teacherName = 'hank'; // 常量如果是类级别的,请使用 static const static const String lector = 'sky';
其实这里跟我们平时的开发认知是相同的! 所以大家稍微可以带过.
⑤ 内置类型
Dart
语言对以下类型有特殊的支持:
- 🎯numbers
- 🎯strings
- 🎯booleans
- 🎯lists (also known as arrays)
- 🎯sets
- 🎯maps
- 🎯runes (for expressing Unicode characters in a string)
- 🎯symbols
可以使用字面量 初始化这些特殊类型中的任何一个对象。例如,'this is a string'
是一个字符串字面量,而 true
是一个布尔字面量。
因为 Dart
中的每个变量都指向一个对象(类的实例),所以通常可以使用构造函数来初始化变量。一些内置类型有自己的构造函数。例如,您可以使用 Map()
构造函数来创建映射。
A: num类型
Dart num
有两种: int
+ double
使用Flutter内置美丽的 Material Design
和 Cupertino
(iOS风格)widget
、丰富的motion API
、平滑而自然的滑动效果和平台感知,为您的用户带来全新体验。
但是这些丝滑的界面也是一行一行的 Dart代码
构建而成,所以了解和掌握 Dart语法
非常重要
我知道可能这一篇文章你不会详细读 ===> 换成是我,我也不会,谁会那么枯燥的啃语法,尤其这么一个快节奏的时代.但是 Dart语法
太重要了🎯🎯🎯,希望你这一遍粗略的读一下,然后点赞收藏👍👍👍,等待你针对某一个地方语法不明确的时候.可以根据标签目录,快速查阅📚📚📚(就当字典工具一样)
那么接下来我们开始从变量和操作符到类和库给大家一点一点介绍一下! 详细的内容大家可以参考Dart官方文档:
ps: 这里给大家推荐一下 Open DartPad 就类似 Swift的 Playground
是不是感觉也是非常便利,其实我们简单的语法测试,完全可以用这个,简单明了!!!😸
① Dart 的重要概念
-
🎯每个变量都是一个对象,每个对象是一个类的实例。甚至数字,函数,和null都是对象。所有对象都继承自 Object类
-
🎯指定静态类型(如 num前面的例子中)讲清意图,用
tools
开启静态检查,但它是可选的。 (可能注意到当你调试代码,没有指定类型的变量会得到一个特殊的类型:dynamic
) -
🎯
Dart
解析所有的代码运行之前。可以对Dart提供提示,例如,通过使用类型或编译时间常数来捕获错误或帮助代码运行更快。 -
🎯
Dart
支持顶级函数(如main()
)也支持类或者对象(静态和实例方法分别支持)里的函数。还可以在函数里创建函数(嵌套或局部功能)。 -
🎯类似的,
Dart
支持顶级变量,以及依赖于类或对象(静态变量和实例变量)变量。实例变量有时被称为域或属性。 -
🎯与
Java
不同,Dart
不具备关键字public,protected和private
。如果一个标识符以下划线(_)
开始,那么它和它的库都是私有的。有关详细信息,请参阅 Libraries and visibility。 -
🎯标识符可以字母或
(_)
开始,或者是字符加数字的组合开头。 -
🎯有时,判断是一个表达式还是一个语句会很重要,所以我们要准确了解这两个单词。
-
🎯
Dart tools
可报告两类问题:警告(warning ⚠️)和错误(error ❎)。警告只是迹象表明,代码可能无法正常工作,但他们不会阻止程序的执行。错误可以是编译时或运行时,编译时的错误阻止代码执行;当代码执行时一个运行时的错误会导致一个 异常(exception)被抛出。 -
🎯Dart有两种运行模式:生产 (
production
) 和检查 (checked
) 。我们建议在检查模式开发和调试,并将其部署到生产模式。 -
🎯
Production mode
是Dart程序一个速度优化的默认运行模式。Production mode
忽略 断言语句(assert statements) 和静态类型。 -
🎯
Checked mode
是开发人员友好的方式,可以帮助你在运行时捕捉一些类型的错误。例如,如果分配一个非数字来声明为一个num
变量,然后在检查模式会抛出异常。 -
🎯编程语言并不是孤立存在的,Dart也是这样,他由语言规范、虚拟机、类库和工具等组成:
-
SDK:SDK 包含
Dart VM、dart2js、Pub
、库和工具。 -
Dartium:内嵌
Dart VM
的Chromium
,可以在浏览器中直接执行dart 代码
。 -
Dart2js:将
Dart
代码编译为JavaScript
的工具。 -
Dart Editor:基于
Eclipse
的全功能 IDE,并包含以上所有工具。支持代码补全、代码导航、快速修正、重构、调试等功能。
-
② 关键字
关键字 | 关键字 | 关键字 | 关键字 |
---|---|---|---|
abstract 2 | else | import 2 | super |
as 2 | enum | in | switch |
assert | export 2 | interface 2 | sync 1 |
async 1 | extends | is | this |
await 3 | extension 2 | library 2 | throw |
break | external 2 | mixin 2 | true |
case | factory 2 | new | try |
catch | false | null | typedef 2 |
class | final | on 1 | var |
const | finally | operator 2 | void |
continue | for | part 2 | while |
covariant 2 | Function 2 | rethrow | with |
default | get 2 | return | yield 3 |
deferred 2 | hide 1 | set 2 | static 2 |
do | if | show 1 | implements 2 |
dynamic 2 |
-
带有上标1的单词是上下文关键词,它们只有在特定的地方才有意义。它们到处都是有效的标识符。
-
带有上标2的单词是内置标识符。为了简化将
JavaScript
代码移植到Dart
的任务,这些关键字在大多数地方都是有效的标识符,但它们不能用作类或类型名,也不能用作导入前缀。 -
带有上标3的单词是与Dart 1.0发布后添加的异步支持相关的较新的、有限的保留单词。不能在任何标记为
async
、async*
或sync*
的函数体中使用await
或yield
作为标识符。 -
表中的所有其他字都是保留字,不能作为标识符。
-
标识符是给予程序中元素的名称,如变量,函数等。标识符的规则是
标识符可以包括字符和数字。 但是,标识符不能以数字开头。- 除下划线(_)或美元符号($)外,标识符不能包含特殊符号。
- 标识符不能是关键字。
- 它们必须是独一无二的
- 标识符区分大小写。
- 标识符不能包含空格。
有效标识符 | 无效标识符 |
---|---|
firstName | Var |
first_name | first name |
num1 | first-name |
$result | 1number |
③ Dart面向对象思想
Dart是一种面向对象的语言。 面向对象是一种遵循真实世界建模的软件开发范例。 Object Orientation
将程序视为通过称为方法的机制相互通信的对象集合。
A: 对象
对象 – 对象是任何实体的实时表示。 根据 Grady Brooch
,每个对象必须具有三个功能
- 状态 – 由对象的属性描述。
- 行为 – 描述对象的行为方式。
- 标识 – 将对象与一组类似此类对象区分开的唯一值。
类
类 – OOP
方面的类是创建对象的蓝图。 类封装了对象的数据。
方法
方法 – 方法促进对象之间的通信。
// main入口函数 void main() { // 面向对象 KCClass cls = new KCClass(); cls.sayHello(); } class KCClass{ void sayHello(){ print('Hello Dart'); } }
④ 变量 & 常量
1: 变量
下面我们开始初始化一个变量 : name
很简单,跟我们开发iOS Android 没有太多的去呗
// 变量声明初始化 void varibleFunc(){ var name = 'cooci'; dynamic nickName = 'KC'; Object person = '酷C'; // 显示声明将被推断类型, 可以使用String显示声明字符串类型 String company = 'LG' ; print('i am: $name,$nickName,$person ,$company'); }
变量存储引用。名为 name
的变量包含对值为“ cooci” 的字符串对象的引用。
name
变量的类型被推断为 String
,声明没有静态类型的变量被隐式声明为动态。 也可以使用 dynamic关键字
代替 var关键字
声明变量,请参考design guidelines指定Object
或者 dynamic
。
显示声明将被推断类型, 可以使用String
显示声明字符串类型
2: 默认值
未初始化的变量具有 null
的初始值。即使数字类型变量最初为 null ,因为数字是对象。
// 默认值 int age; assert(age == null); print(age); //打印结果为null,证明数字类型初始化值是null
3: Final and const
如果您从未打算更改变量,可以使用 final
或 const
来代替 var
或添加到类型之外。final变量
只能设置一次; const变量
是编译时常量。(Const变量
隐式为final
。)最终的顶级变量或类变量在第一次使用时进行初始化。
// Final and const // Final and const final student = 'JZ'; final String studentName = '家振'; print('student = ,${[student,studentName]}'); // 被 final 或 const 修饰的变量无法再去修改其值。 // student = 'chen'; // a final variable, can only be set once const teacher = 'Kody'; // 这样写,编译器提示:Constant variables can't be assigned a value // teacher = 'Cat'; // flnal 或者 const 不能和 var 同时使用 // Members can't be declared to be both 'const' and 'var' // const var String teacherName = 'CC'; // final var String teacherName = 'hank'; // 常量如果是类级别的,请使用 static const static const String lector = 'sky';
其实这里跟我们平时的开发认知是相同的! 所以大家稍微可以带过.
⑤ 内置类型
Dart
语言对以下类型有特殊的支持:
- 🎯numbers
- 🎯strings
- 🎯booleans
- 🎯lists (also known as arrays)
- 🎯sets
- 🎯maps
- 🎯runes (for expressing Unicode characters in a string)
- 🎯symbols
可以使用字面量 初始化这些特殊类型中的任何一个对象。例如,'this is a string'
是一个字符串字面量,而 true
是一个布尔字面量。
因为 Dart
中的每个变量都指向一个对象(类的实例),所以通常可以使用构造函数来初始化变量。一些内置类型有自己的构造函数。例如,您可以使用 Map()
构造函数来创建映射。
A: num类型
Dart num
有两种: int
+ double
使用Flutter内置美丽的 Material Design
和 Cupertino
(iOS风格)widget
、丰富的motion API
、平滑而自然的滑动效果和平台感知,为您的用户带来全新体验。
但是这些丝滑的界面也是一行一行的 Dart代码
构建而成,所以了解和掌握 Dart语法
非常重要
我知道可能这一篇文章你不会详细读 ===> 换成是我,我也不会,谁会那么枯燥的啃语法,尤其这么一个快节奏的时代.但是 Dart语法
太重要了🎯🎯🎯,希望你这一遍粗略的读一下,然后点赞收藏👍👍👍,等待你针对某一个地方语法不明确的时候.可以根据标签目录,快速查阅📚📚📚(就当字典工具一样)
那么接下来我们开始从变量和操作符到类和库给大家一点一点介绍一下! 详细的内容大家可以参考Dart官方文档:
ps: 这里给大家推荐一下 Open DartPad 就类似 Swift的 Playground
是不是感觉也是非常便利,其实我们简单的语法测试,完全可以用这个,简单明了!!!😸
① Dart 的重要概念
-
🎯每个变量都是一个对象,每个对象是一个类的实例。甚至数字,函数,和null都是对象。所有对象都继承自 Object类
-
🎯指定静态类型(如 num前面的例子中)讲清意图,用
tools
开启静态检查,但它是可选的。 (可能注意到当你调试代码,没有指定类型的变量会得到一个特殊的类型:dynamic
) -
🎯
Dart
解析所有的代码运行之前。可以对Dart提供提示,例如,通过使用类型或编译时间常数来捕获错误或帮助代码运行更快。 -
🎯
Dart
支持顶级函数(如main()
)也支持类或者对象(静态和实例方法分别支持)里的函数。还可以在函数里创建函数(嵌套或局部功能)。 -
🎯类似的,
Dart
支持顶级变量,以及依赖于类或对象(静态变量和实例变量)变量。实例变量有时被称为域或属性。 -
🎯与
Java
不同,Dart
不具备关键字public,protected和private
。如果一个标识符以下划线(_)
开始,那么它和它的库都是私有的。有关详细信息,请参阅 Libraries and visibility。 -
🎯标识符可以字母或
(_)
开始,或者是字符加数字的组合开头。 -
🎯有时,判断是一个表达式还是一个语句会很重要,所以我们要准确了解这两个单词。
-
🎯
Dart tools
可报告两类问题:警告(warning ⚠️)和错误(error ❎)。警告只是迹象表明,代码可能无法正常工作,但他们不会阻止程序的执行。错误可以是编译时或运行时,编译时的错误阻止代码执行;当代码执行时一个运行时的错误会导致一个 异常(exception)被抛出。 -
🎯Dart有两种运行模式:生产 (
production
) 和检查 (checked
) 。我们建议在检查模式开发和调试,并将其部署到生产模式。 -
🎯
Production mode
是Dart程序一个速度优化的默认运行模式。Production mode
忽略 断言语句(assert statements) 和静态类型。 -
🎯
Checked mode
是开发人员友好的方式,可以帮助你在运行时捕捉一些类型的错误。例如,如果分配一个非数字来声明为一个num
变量,然后在检查模式会抛出异常。 -
🎯编程语言并不是孤立存在的,Dart也是这样,他由语言规范、虚拟机、类库和工具等组成:
-
SDK:SDK 包含
Dart VM、dart2js、Pub
、库和工具。 -
Dartium:内嵌
Dart VM
的Chromium
,可以在浏览器中直接执行dart 代码
。 -
Dart2js:将
Dart
代码编译为JavaScript
的工具。 -
Dart Editor:基于
Eclipse
的全功能 IDE,并包含以上所有工具。支持代码补全、代码导航、快速修正、重构、调试等功能。
-
② 关键字
关键字 | 关键字 | 关键字 | 关键字 |
---|---|---|---|
abstract 2 | else | import 2 | super |
as 2 | enum | in | switch |
assert | export 2 | interface 2 | sync 1 |
async 1 | extends | is | this |
await 3 | extension 2 | library 2 | throw |
break | external 2 | mixin 2 | true |
case | factory 2 | new | try |
catch | false | null | typedef 2 |
class | final | on 1 | var |
const | finally | operator 2 | void |
continue | for | part 2 | while |
covariant 2 | Function 2 | rethrow | with |
default | get 2 | return | yield 3 |
deferred 2 | hide 1 | set 2 | static 2 |
do | if | show 1 | implements 2 |
dynamic 2 |
-
带有上标1的单词是上下文关键词,它们只有在特定的地方才有意义。它们到处都是有效的标识符。
-
带有上标2的单词是内置标识符。为了简化将
JavaScript
代码移植到Dart
的任务,这些关键字在大多数地方都是有效的标识符,但它们不能用作类或类型名,也不能用作导入前缀。 -
带有上标3的单词是与Dart 1.0发布后添加的异步支持相关的较新的、有限的保留单词。不能在任何标记为
async
、async*
或sync*
的函数体中使用await
或yield
作为标识符。 -
表中的所有其他字都是保留字,不能作为标识符。
-
标识符是给予程序中元素的名称,如变量,函数等。标识符的规则是
标识符可以包括字符和数字。 但是,标识符不能以数字开头。- 除下划线(_)或美元符号($)外,标识符不能包含特殊符号。
- 标识符不能是关键字。
- 它们必须是独一无二的
- 标识符区分大小写。
- 标识符不能包含空格。
有效标识符 | 无效标识符 |
---|---|
firstName | Var |
first_name | first name |
num1 | first-name |
$result | 1number |
③ Dart面向对象思想
Dart是一种面向对象的语言。 面向对象是一种遵循真实世界建模的软件开发范例。 Object Orientation
将程序视为通过称为方法的机制相互通信的对象集合。
A: 对象
对象 – 对象是任何实体的实时表示。 根据 Grady Brooch
,每个对象必须具有三个功能
- 状态 – 由对象的属性描述。
- 行为 – 描述对象的行为方式。
- 标识 – 将对象与一组类似此类对象区分开的唯一值。
类
类 – OOP
方面的类是创建对象的蓝图。 类封装了对象的数据。
方法
方法 – 方法促进对象之间的通信。
// main入口函数 void main() { // 面向对象 KCClass cls = new KCClass(); cls.sayHello(); } class KCClass{ void sayHello(){ print('Hello Dart'); } }
④ 变量 & 常量
1: 变量
下面我们开始初始化一个变量 : name
很简单,跟我们开发iOS Android 没有太多的去呗
// 变量声明初始化 void varibleFunc(){ var name = 'cooci'; dynamic nickName = 'KC'; Object person = '酷C'; // 显示声明将被推断类型, 可以使用String显示声明字符串类型 String company = 'LG' ; print('i am: $name,$nickName,$person ,$company'); }
变量存储引用。名为 name
的变量包含对值为“ cooci” 的字符串对象的引用。
name
变量的类型被推断为 String
,声明没有静态类型的变量被隐式声明为动态。 也可以使用 dynamic关键字
代替 var关键字
声明变量,请参考design guidelines指定Object
或者 dynamic
。
显示声明将被推断类型, 可以使用String
显示声明字符串类型
2: 默认值
未初始化的变量具有 null
的初始值。即使数字类型变量最初为 null ,因为数字是对象。
// 默认值 int age; assert(age == null); print(age); //打印结果为null,证明数字类型初始化值是null
3: Final and const
如果您从未打算更改变量,可以使用 final
或 const
来代替 var
或添加到类型之外。final变量
只能设置一次; const变量
是编译时常量。(Const变量
隐式为final
。)最终的顶级变量或类变量在第一次使用时进行初始化。
// Final and const // Final and const final student = 'JZ'; final String studentName = '家振'; print('student = ,${[student,studentName]}'); // 被 final 或 const 修饰的变量无法再去修改其值。 // student = 'chen'; // a final variable, can only be set once const teacher = 'Kody'; // 这样写,编译器提示:Constant variables can't be assigned a value // teacher = 'Cat'; // flnal 或者 const 不能和 var 同时使用 // Members can't be declared to be both 'const' and 'var' // const var String teacherName = 'CC'; // final var String teacherName = 'hank'; // 常量如果是类级别的,请使用 static const static const String lector = 'sky';
其实这里跟我们平时的开发认知是相同的! 所以大家稍微可以带过.
⑤ 内置类型
Dart
语言对以下类型有特殊的支持:
- 🎯numbers
- 🎯strings
- 🎯booleans
- 🎯lists (also known as arrays)
- 🎯sets
- 🎯maps
- 🎯runes (for expressing Unicode characters in a string)
- 🎯symbols
可以使用字面量 初始化这些特殊类型中的任何一个对象。例如,'this is a string'
是一个字符串字面量,而 true
是一个布尔字面量。
因为 Dart
中的每个变量都指向一个对象(类的实例),所以通常可以使用构造函数来初始化变量。一些内置类型有自己的构造函数。例如,您可以使用 Map()
构造函数来创建映射。
A: num类型
Dart num
有两种: int
+ double
部分转自互联网,侵权删除联系
最新评论