dart基础语法
Posted 彬彬杨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dart基础语法相关的知识,希望对你有一定的参考价值。
今晚重新把视频看了一遍,总结下 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
可以这样来定义:
-
其实,也就是把
[]
换成就好了。
-
Set
和List
最大的两个不同就是: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=null
printInfo1('why', age: 18); // name=why age=18 height=null
printInfo1('why', age: 18, height: 1.88); // name=why age=18 height=1.88
printInfo1('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=null
printInfo2('why', 18); // name=why age=18 height=null
printInfo2('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函数时, 我们可以传入参数, 也可以不传入
以上是关于dart基础语法的主要内容,如果未能解决你的问题,请参考以下文章