dart基础语法(2)

本文介绍了Dart编程语言的基础知识点,包括HelloWorld程序的写法,main函数特性,变量的声明与类型推导,数字、字符串、布尔类型,集合(List、Set、Map)使用,以及函数定义,特别是可选参数和默认值的讲解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今晚重新把视频看了一遍,总结下 dart基础语法上部分的知识点

一.Hello World

老师当初教育的,管你什么语言,都给我从hello world开始

void main(){
  print("hello world");
}
  • 一、Dart语言的入口也是main函数,并且必须显示的进行定义;

  • 二、Dart的入口函数main是没有返回值的;

  • 三、传递给main的命令行参数,是通过List<String>完成的。

    • 从字面值就可以理解List是Dart中的集合类型。

    • 其中的每一个String都表示传递给main的一个参数;

  • 四、定义字符串的时候,可以使用单引号或双引号;

  • 五、每行语句必须使用分号结尾,很多语言并不需要分号,比如Swift、JavaScript;

二.变量 

2.1明确的声明

变量类型 变量名称 = 赋值;

String name = “杨彬”

2.2类型推导(var/final/const)

var/dynamic/const/final 变量名称 = 赋值;

var  声明的是            变量

dynamic 忽略吧  在开发中, 通常情况下不使用dynamic, 因为类型的变量会带来潜在的危险

const/final 声明的是  常量(JAVA里面这玩意不可变)

那问题来了。这玩意都是常量,有啥区别

1.const 对应的是常量值,必须赋值,编译期间需要有一个确定的值

2.final可以通过计算 函数方法 获取,运行期间来确定       

var age = 24

三.数据类型

3.1数字类型

// 1.整数类型int
int age = 18;
int hexAge = 0x12;
print(age);
print(hexAge);

// 2.浮点类型double
double height = 1.88;
print(height);

记住一句话   整数用int,浮点数用double就行了。

字符串和数字之间的转化:

// 字符串和数字转化
// 1.字符串转数字
var one = int.parse('111');
var two = double.parse('12.22');
print('${one} ${one.runtimeType}'); // 111 int
print('${two} ${two.runtimeType}'); // 12.22 double

// 2.数字转字符串
var num1 = 123;
var num2 = 123.456;
var num1Str = num1.toString();
var num2Str = num2.toString();
var num2StrD = num2.toStringAsFixed(2); // 保留两位小数
print('${num1Str} ${num1Str.runtimeType}'); // 123 String
print('${num2Str} ${num2Str.runtimeType}'); // 123.456 String
print('${num2StrD} ${num2StrD.runtimeType}'); // 123.46 String

 3.2布尔类型

无非跟java一个样  boolean   true false 

但是注意一个问题:

注意: Dart中不能判断非0即真, 或者非空即真

Dart的类型安全性意味着您不能使用if(非booleanvalue)或assert(非booleanvalue)之类的代码。

  var message = 'Hello Dart';
  // 错误的写法
  if (message) {
    print(message)
  }

3.3字符串类型

var s1 = 'Hello World';
var s2 = "Hello Dart";
var s3 = 'Hello\'Fullter';
var s4 = "Hello'Fullter";

使用${expression} 来做拼接。其实像 java +

// 3.拼接其他变量
var name = 'coderwhy';
var age = 18;
var height = 1.88;
print('my name is ${name}, age is $age, height is $height');
 

3.4集合类型 

 Dart则内置了最常用的三种:List / Set / Map

List可以这样来定义:

// List定义
// 1.使用类型推导定义
var letters = ['a', 'b', 'c', 'd'];
print('$letters ${letters.runtimeType}');


// 2.明确指定类型
List<int> numbers = [1, 2, 3, 4];
print('$numbers ${numbers.runtimeType}');
 

其中,set可以这样来定义:

  • 其实,也就是把[]换成{}就好了。

  • SetList最大的两个不同就是:Set是无序的,并且元素是不重复的。

// Set的定义
// 1.使用类型推导定义
var lettersSet = {'a', 'b', 'c', 'd'};
print('$lettersSet ${lettersSet.runtimeType}');


// 2.明确指定类型
Set<int> numbersSet = {1, 2, 3, 4};
print('$numbersSet ${numbersSet.runtimeType}');
 

最后,Map是我们常说的字典类型,它的定义是这样的:

// Map的定义
// 1.使用类型推导定义
var infoMap1 = {'name': 'why', 'age': 18};
print('$infoMap1 ${infoMap1.runtimeType}');

// 2.明确指定类型
Map<String, Object> infoMap2 = {'height': 1.88, 'address': '北京市'};
print('$infoMap2 ${infoMap2.runtimeType}');
 

四.函数

dart是没有java函数的重载的 切记

函数的定义方式:

返回值 函数的名称(参数列表) {  函数体  return 返回值}

4.1可选参数

可选参数可以分为 命名可选参数 和 位置可选参数

定义方式:

命名可选参数: {param1, param2, ...}位置可选参数: [param1, param2, ...]

命名可选参数的演示:

// 命名可选参数printInfo1(String name, {int age, double height}) {  print('name=$name age=$age height=$height');}
// 调用printInfo1函数printInfo1('why'); // name=why age=null height=nullprintInfo1('why', age: 18); // name=why age=18 height=nullprintInfo1('why', age: 18, height: 1.88); // name=why age=18 height=1.88printInfo1('why', height: 1.88); // name=why age=null height=1.88

位置可选参数的演示:

// 定义位置可选参数printInfo2(String name, [int age, double height]) {  print('name=$name age=$age height=$height');}
// 调用printInfo2函数printInfo2('why'); // name=why age=null height=nullprintInfo2('why', 18); // name=why age=18 height=nullprintInfo2('why', 18, 1.88); // name=why age=18 height=1.88

命名可选参数, 可以指定某个参数是必传的(使用@required, 有问题)

// 命名可选参数的必须printInfo3(String name, {int age, double height, @required String address}) {  print('name=$name age=$age height=$height address=$address');}

4.2. 参数默认值

参数可以有默认值, 在不传入的情况下, 使用默认值

  • 注意, 只有可选参数才可以有默认值, 必须参数不能有默认值

// 参数的默认值printInfo4(String name, {int age = 18, double height=1.88}) {  print('name=$name age=$age height=$height');}

Dart中的main函数就是一个接受可选的列表参数作为参数的, 所以在使用main函数时, 我们可以传入参数, 也可以不传入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值