Dart 语言

本文介绍了Dart编程语言的基本知识,包括main函数作为程序入口,它接收List<String>类型的命令行参数。同时,文章讲解了Dart中变量的声明,如使用var、final和const关键字进行类型推导,并强调了它们之间的区别,特别是const要求赋值必须在编译时确定。

 一/ Hello Dart

  • Dart 语言的入口也是 main 函数,并且必须显示的进行定义;
  • Dart的入口函数 main 是没有返回值的
  • 传递给 main 的命令行参数,是通过 List<String>完成的
    • 从字面值就可以理解 List 是 Dart 中的集合类型
    • 其中的每一个 String 都表示传递给 main 的一个参数

 

/**
* 1.main 函数是 Dart 入口
* 2.dart当中打印信息使用print函数
*/
main(List<String> args) {
    print ("Hello Dart")
}

二/ 声明变量

main(List<String> arg) {
//1.明确的声明
String name = "Why"

//2.类型推导(var/final/const)
//类型推导的方式虽然没有明确指定变量的类型,但变量是有自己明确的类型
//2.1. var 声明常量

var age  = 20;
age = 30;
// age = "改变类型会报错"

//2.2. final 声明常量
final height = 1.88;
// height = 2.00; 常量改变会报错

//2.3. const 声明常量
const address = "上海市"
// address = "南京" 改变常量会报错

//2.4 final 和 const 的区别
// const 必须赋值 常量值(编译期间需要有一个确定的值)
// final 可以通过计算/函数获取一个值(运行期间来确定一个值)
}

### Dart 语言基础与使用指南 #### 变量与类型系统 Dart 是一门强类型语言,所有变量在声明后不能随意更改其类型,除非使用 `dynamic` 关键字。变量在未声明为可空类型时,默认不允许为 `null`。可以通过在类型后添加 `?` 来声明可空类型。例如: ```dart int? age; // 可为空的整数类型 dynamic value; // 允许任意类型 ``` 所有变量都是对象,包括数字、布尔值、函数等,它们都继承自 `Object` 类。Dart 支持类型推断,因此变量声明时可以省略类型: ```dart var name = 'Dart'; // 类型被推断为 String ``` 在空安全模式下,变量默认不能为 `null`,否则会引发编译错误 [^1]。 #### 函数与控制流 Dart 支持顶级函数、类函数和嵌套函数。例如: ```dart void printInteger(int aNumber) { print('The number is $aNumber.'); } void main() { var number = 42; printInteger(number); } ``` 控制流语句包括 `if`、`switch`、`for` 和 `while`。`if` 的条件表达式必须是 `bool` 类型,不能使用其他类型作为条件值: ```dart int ok = 1; if (ok) { // 编译错误 // ... } ``` 循环结构支持多种方式,包括传统的 `for` 循环和增强型 `for-in` 循环: ```dart List<int> list = [0, 1, 2, 3, 4]; for (int i = 0; i < list.length; i++) { print(list[i]); } for (int item in list) { print(item); } ``` #### 类与接口 Dart 中的类可以实现接口。例如,定义一个 `Person` 接口并由 `Impostor` 类实现: ```dart abstract class Person { String greet(String who); } class Impostor implements Person { @override String greet(String who) => 'Hi $who. Do you know who I am?'; } ``` Dart 不支持 `public`、`private`、`protected` 等访问控制符。如果一个标识符以 `_` 开头,则表示它是库内部使用的私有成员 [^3]。 #### 表达式与语句 Dart 中的表达式具有值,而语句没有。例如,`if` 语句是一个语句,而三元运算符是一个表达式: ```dart int a = 10; String result = a > 5 ? 'Greater' : 'Smaller'; // 表达式 ``` #### 类型转换与动态类型 虽然 Dart 是强类型语言,但可以通过 `dynamic` 关键字允许变量在运行时具有任意类型: ```dart dynamic data = 'Hello'; data = 123; // 允许更改类型 ``` 这与 JavaScript 类似,但在默认情况下,Dart 不允许类型随意更改 [^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值