前言
感觉自己现在身边很多的朋友总是说自己无聊不知道干啥,一边这样说一边没完没了的刷抖音,玩手机打游戏 ,感觉他们挺开心快活的呀 ,我思考过那特们为啥无聊呢?
可能是说抖音没给他带来成就感吧,所以作为程序猿的我感觉还是没事敲敲代码,学学新的技术就不会无聊了。
Dart的内置类型
要想学习内置类型,第一个问题就是要知道有哪些内置类型,这个问题so easy呀Dart的官网已经告诉你了
那我们接下来就一个一个的学习一下吧
- Number类型
Dart支持两种Number类型 int,double
int 和 double 都是 [num][num] 的子类。 num 中定义了一些基本的运算符比如 +、-、*、/ 等,还定义了 abs()、ceil() 和 floor() 等方法(位运算符,比如 >> 定义在 int 中)。如果 num 及其子类不满足你的要求,可以查看 dart:math 库中的 API。
int :整数值:长度不超过64位,具体取值范围依赖于不同的平台,在Dart JVM上取值范围为-2的63次方到2的63次方减一。
double:64位的双精度浮点数,并且符合IEEE754标准
定义整数
var x = 1;
var hex = 0xDEADBEEF;
var exponent=2e5;
定义浮点数
var y = 1.1;
var exponents = 1.42e5;
你也可是使用num关键字声明变量,那样的话变量可以同时是intger和double类型的值
//此时整数的字面量会在必要的时候自动转化为浮点数字面量
num x =1.1;
x+=2.5;
字符串和数字之间转换的方式
/// Int 数据转化为String
String intToString(int value) {
return value.toString();
}
/// dobule 数据转化为String
String doubleToString(double value) {
return value.toStringAsFixed(2);
}
///将整型数据转化为int
int stringToInt(String value) {
return int.parse(value);
}
///将浮点数转化为字符串
double stringToDouble(String value) {
return double.parse(value);
}
- String类型
Dart字符串(String对象)包含了UTF-16编码的字符序列,可以使用双引号或者单引号来创建字符串
var s1 = "this is xiao hei";
var s2 = 'who are you ';
在字符串中,可以使用${表达式}的形式使用表达式,如果表达式是一个标识符可以省略{} ,如果表达式的结果为一个对象,Dart就会调用toString()转化为字符串
/// 使用$在字符串中插入数值
String useInString() {
var age = 27;
var name = "栾桂明";
return "我的名字是$name,年龄是$age";
}
你可以使用 + 运算符或并列放置多个字符串来连接字符串:
///通过加号连接两个字符串
String connectString(String value1, String value2) {
return value1 + value2;
}
///通过==运算符判断两个对象的内容是不是一样
bool isSameString(String value1,String value2){
return value1==value2;
}
使用三个单引号或者三个双引号也能创建多行字符串:
/// 使用 """ 或者 ''' 创建多行字符串
String createMoreLineString() {
return
"""
我是栾小黑
黑龙江绥化人
我是android开发工程师
""";
}
在字符串前加上 r 作为前缀创建 “raw” 字符串(即不会被做任何处理(比如转义)的字符串):
/// 通过在字符串开始的位置添加r原样输出字符串
String createRawString(){
var value = r'我要原样输出当前的字符串\n';
return value;
}
字符串字面量是一个编译时常量,只要是编译时常量 (null、数字、字符串、布尔) 都可以作为字符串字面量的插值表达式
- 布尔数据类型
Dart使用bool关键字表示布尔类型,布尔类型只有两个对象 true和false 两者都是编译常量
Dart 的类型安全不允许你使用类似 if (nonbooleanValue) 或者 assert (nonbooleanValue) 这样的代码检查布尔值。相反,你应该总是显示地检查布尔值,比如像下面的代码这样:
///布尔变量的使用
bool useBooleanValue() {
var fullName = "";
return fullName.isEmpty;
}
- Lists 数组
Dart中使用List对象来表示数组,通常称之为List
///创建一个整型数组
List<int> createIntList() {
var list = [1, 2, 3, 4, 5];
return list;
}
你可以在 Dart 的集合类型的最后一个项目后添加逗号。这个尾随逗号并不会影响集合
///创建一个String类型的数组
List<String> createStringList() {
var list = [
"栾",
"桂",
"明",
];
return list;
}
在 List 字面量前添加 const 关键字会创建一个编译时常量:
///通过const关键字创建一个编译时 的list集合 他内部的数据就无法被修改了
List<int> createConstIntList() {
const list = [12, 13, 14, 15, 16];
return list;
}
- Sets特定元素的无序集合,通常称之为 Set
///创建一个Set集合
Set<String> createSet() {
var sets = {"this", "is", "luan", "gui", "ming"};
return sets;
}
可以使用在 {} 前加上类型参数的方式创建一个空的 Set,或者将 {} 赋值给一个 Set 类型的变量:
var name = <String>{};
使用 add() 方法或 addAll() 方法向已存在的 Set 中添加项目:
///向集合中添加一个元素
Set<String> setAddElement(){
var sets = {"this", "is", "luan", "gui", "ming"};
sets.add("栾桂明");
return sets;
}
使用 .length 可以获取 Set 中元素的数量:
///获取set集合的元素的个数
int setGetLength(){
var sets = {"this", "is", "luan", "gui", "ming"};
return sets.length;
}
可以在 Set 变量前添加 const 关键字创建一个 Set 编译时常量:
final constantSet = const {
'fluorine',
'chlorine',
'bromine',
'iodine',
'astatine',
};
// constantSet.add('helium'); // This line will cause an error.