【dart】常用数据类型

Number

  • num 可以声明是整数,也可以是浮点数
  • int 只能声明整数
  • double 只能声明浮点数
main() {int cont = 6;// cont = 6.3;double core = 90;print(core); // 90.0num age = 18;num sum = 20.9;
}
  • 常用api
main() {int cont = 6;// cont = 6.3;double core = 90;print(core); // 90.0num age = 18;num sum = 20.9;print(core.toString()); // '90.0'print(age.toDouble()); // 18.0print(sum.toInt()); // 20 向下取整print(3.1415926.round()); //3 四舍五入print(3.6.round()); //4 四舍五入print(3.1415926.toStringAsFixed(5)); // 3.14159 四舍五入指定小数位数print(10.remainder(4)); // 2 取余// 比较: a.compareTo(b); a = b 返回:0; a > b 返回: 1; a < b 返回: -1;print(10.compareTo(10)); // 0print(10.compareTo(8)); // 1print(10.compareTo(20)); // -1// 最大公约数print(10.gcd(16)); // 2print(12.gcd(16)); // 4// 科学计数法print(1000.toStringAsExponential(2)); // 1.00e+3print(1000.toStringAsExponential(1)); // 1.0e+3
}
  • NaN
var n = 0 / 0;
print(n); // NaN
print(n.isNaN); // true

更多

字符串

  • 字符串声明
// 单引号声明
var str1 = 'hello';
// 双引号声明
var str2 = "world";
// 三个引号可声明多行的字符串,单双均可以,要成对出现
String str4 = """我系
渣渣辉""";
String str5 = '''你洗
古天乐''';
  • 字符串拼接
var str1 = 'hello';
String str5 = '''你洗
古天乐''';
print(str1 + str5);
// hello你洗
// 古天乐
  • 字符串常用api
print('abcdefg'.split('')); // [a, b, c, d, e, f, g]// 去除首位空格
print('  123 '.trim()); // 123// 判空
print(''.isEmpty); // true
print(''.isNotEmpty); // false// 替换
print('hello java'.replaceAll('java', 'dart')); // hello dart
print('1s5f15t1rg1gh5r1g1r1h5rt1h5r'.replaceAll(RegExp(r'\d+'), '_')); // _s_f_t_rg_gh_r_g_r_h_rt_h_r// 判断是否是手机号
print(RegExp(r'^1\d{10}$').hasMatch('13312580490')); // true// 查找字符串
print('hello'.contains('e')); // true// 定位字符串
print('hello'.indexOf('e')); // 1
print('hello'.lastIndexOf('o')); // 3
  • 模板字符串 强调: ${变量}, ${}可以省略
var message1 = "my name is $name, age is $age, height is $height";
var message2 = "name is $name, type is ${name.runtimeType}";
print(message1);
print(message2);

更多

布尔类型

  • 通过bool关键字声明

  • 布尔类型有两个值: true 和 false

bool flag = true;
print(flag);
bool flag = false;
print(flag);
  • 对变了进行判断,要显式的检查布尔值
bool flag = true;
var tag;
if (flag) {print('');
}if(tag) {} // 这样会报警告,dart强类型语言不会隐式转换
if(tag == null) {}

更多

List

  • 声明
//字面量方式声明
List list1 = [];
List list2 = <int>[];//构造函数声明
List list3 = new List.empty(growable: true); // 不限制长度的空列表
List list4 = new List.filled(3, 0);print(list1); // []
print(list2); // []
print(list3); // []
print(list4); // [0, 0, 0] 
  • 扩展操作符
var list = [1,2,3];
List list1 = <int>[0, ...list];var list2;
// 避免null扩展
List list1 = <int>[0, ...?list2];
  • 常用api
var l = [1,2,55,03,54,2615,6,'fsf','fs','rwet',8,12,56,1,5];
// 返回列表长度
print(l.length);
// 列表翻转
print(l.reversed.toList());
// 添加元素
l.addAll([99,88,77]);
print(l);
// 删除指定元素
l.remove(88);
print(l);
// 删除指定下标元素
l.removeAt(1);
// 指定位置添加元素
l.insert(5,999);
// 指定位置添加多个元素
l.insertAll(5,[1,2,3,4,56]);
print(l);
// 清空列表
l.clear();
// 列表判空
print(l.isEmpty);// 数组合并
list words = ['hello','world'];
print(words.join('-')); // hello-world
  • 遍历
List test = <int>[1,2,3,4,6,7,8];for(int i = 0; i < test.length;i++) {
// print(test[i]);
}for(int item in test) {
// print(item);
}// forEach
test.forEach((element) {
print(element);
});// map
print(test.map((e) => e * e).toList());
// [1, 4, 9, 16, 36, 49, 64] map完是可迭代对象,可以同toList方法转换成数组// where
print(test.where((element) => element.remainder(2) == 0));
// (2, 4, 6, 8) 过滤出偶数// any
print(test.any((element) => element > 3)); // true
// 判断是否有一个元素大于3,返回布尔值// every
print(test.every((element) => element > 2)); // false
// 判断是否所有元素大于3,返回布尔值

更多

Set

  • 定义: 是无序元素不重复的集合
  • 声明
var nums = <int>{ 1, 2, 3 };
print(nums);Set animals = new Set();
  • 不能通过下标取值
// print({1,2,3}[2]) 编译不通过
  • 具有集合特有的操作(交并差)
// 交并差
Set set1 = {1,2,8,9,4,6,12,3};
Set set2 = {1,2,8,11,18,26,12,3};// 交集
print(set1.intersection(set2)); // {1, 2, 8, 12, 3}
// 并集
print(set1.union(set2)); // {1, 2, 8, 9, 4, 6, 12, 3, 11, 18, 26}
// 差集
print(set1.difference(set2)); // {9, 4, 6}
  • 常用api
Set animals = new Set();
animals.add('dog');
animals.add('cat');
animals.addAll(['旺财','二哈']);
print(animals); // {dog, cat, 旺财, 二哈}
print(animals.toList()); // [dog, cat, 旺财, 二哈]
print(animals.first); // dog
print(animals.last); // 二哈// 可以通过Set给数组去重
print([1,1,1,'a','a',2,3,6,48,55,55].toSet().toList()); // [1, a, 2, 3, 6, 48, 55]

更多

Map

  • 定义: map是一个无序的键值(key-value)对;也作哈希或字典。
  • 声明方式
var p = {'name':'w','age':18};
Map map = new Map();
map['name'] = 'g';
map['sex'] = '男';
  • 常用api
var p = {'name':'w','age':18};
Map map = new Map();
map['name'] = 'g';
map['sex'] = '男';// 属性访问
print(map['sex']);// 判断map是否存在某个键
print(p.containsKey('name'));p.putIfAbsent('school', () => '蓝翔');
print(p); // {name: w, age: 18, school: 蓝翔}
p.putIfAbsent('school', () => '新东方烹饪');
print(p); // {name: w, age: 18, school: 蓝翔}// 获取map中所有的key和value,可迭代对象
print(p.keys); // (name, age, school)
print(p.values); // (w, 18, 蓝翔)p.remove('name');
print(p); // {age: 18, school: 蓝翔}// 当key满足时删除该属性
p.removeWhere((key, value) => key == 'age');
print(p); // {school: 蓝翔}

更多

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/740744.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++(3/12)

自己封装一个矩形类(Rect)&#xff0c;拥有私有属性:宽度(width)、高度(height)&#xff0c; 定义公有成员函数: 初始化函数:void init(int w, int h) 更改宽度的函数:set_w(int w) 更改高度的函数:set_h(int h) 输出该矩形的周长和 #include <iostream>using name…

C++ std::list的merge()使用与分析

看到《C标准库第2版》对list::merge()的相关介绍&#xff0c;令我有点迷糊&#xff0c;特意敲代码验了一下不同情况的调用结果。 《C标准库第2版》对list::merge()的相关介绍 list::merge()定义 merge()的作用就是将两个list合并在一起&#xff0c;函数有2个版本&#xff1a;…

蓝桥杯(3.12)

1064: 【模板】埃氏筛法 import java.util.Scanner;public class Main{static final int N 2000010;static boolean[] vis new boolean[N];public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();vis[0] true;vis[1] true;for…

深入浅出FISCO BCOS:区块链底层平台

苏泽 大家好 这里是苏泽 一个钟爱区块链技术的后端开发者 本篇专栏 ←持续记录本人自学两年走过无数弯路的智能合约学习笔记和经验总结 如果喜欢拜托三连支持~ 我前面有补充相关的区块链的知识 如果没有了解的话 可能部分概念或名词会不懂哦 建议先了解一波再来看~http://t.c…

算法-二分与差分-503.借教室

题目 思路 代码不超时&#xff1a;限制在10的8次方以内&#xff1b;线段树能处理的数据上限是10^5二分&#xff1a;具有二段性&#xff0c;第一个订单不满足&#xff0c;后面的订单也不用去考虑差分&#xff08;前缀和的逆运算&#xff09;&#xff1a;题目的要求是将一个区间…

Shell学习 - 2.22 Shell数学计算(算术运算,加减乘除运算)

如果要执行算术运算&#xff08;数学计算&#xff09;&#xff0c;就离不开各种运算符号&#xff0c;和其他编程语言类似&#xff0c;Shell 也有很多算术运算符&#xff0c;下面就给大家介绍一下常见的 Shell 算术运算符&#xff0c;如下表所示。 Shell 算术运算符一览表 算术运…

【leetcode热题】反转字符串中的单词

给你一个字符串 s &#xff0c;请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意&#xff1a;输入字符串 s中可能会存在前导空格、尾随…

VulnHub - DarkHole

希望和各位大佬一起学习&#xff0c;如果文章内容有错请多多指正&#xff0c;谢谢&#xff01; 个人博客链接&#xff1a;CH4SER的个人BLOG – Welcome To Ch4sers Blog DarkHole 靶机下载地址&#xff1a;DarkHole: 1 ~ VulnHub 0x01 信息收集 Nmap扫描目标主机&#xf…

深度学习——第10章 优化神经网络:如何防止过拟合(DNN)

第10章 优化神经网络:如何防止过拟合(DNN) 目录 10.1 什么是过拟合 10.2 L1、L2正则化 10.3 L2正则化的物理解释 10.4 Dropout正则化 10.5 其它正则化技巧 10.6 总结 上一课,我们一步步搭建了一个深层神经网络来实现图片的分类。结果显示,随着网络层数加深,隐藏层数…

C语言自学笔记3-----C语言运算符及优先级

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 语言内置了丰富的运算符&#xff0c;并提供了以下类型的运算符&#xff1a; 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 算术运算符 下表显示了 C 语言支持的所有算术运算符。 假设变量 A 的…

Kafka 实现之接口设计 —— 生产者 API、消费者 API

目录 一. 前言 二. 生产者 API 三. 消费者 API 3.1. 低级别 API 3.2. 高级别 API 一. 前言 Kafka 强大的应用程序层的基础是用于访问存储的两个基本 API&#xff0c;即用于写入事件的生产者 API和用于读取事件的消费者 API。在这两个 API 之上构建了用于集成和处理的 API。…

在域控批量导出用户及其所在路径的信息

在Windows Server的Active Directory环境中&#xff0c;要批量导出用户及其所在OU&#xff08;组织单位&#xff09;的信息&#xff0c;可以使用PowerShell命令来实现。以下是一个简单的示例&#xff1a; Get-ADUser -Filter * -Properties CanonicalName | Select-Object Nam…

力扣-160. 相交链表(双指针)

给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&#xff0c;函数返回结果后&a…

ARTS Week 20

Algorithm 本周的算法题为 1222. 可以攻击国王的皇后 在一个 下标从 0 开始 的 8 x 8 棋盘上&#xff0c;可能有多个黑皇后和一个白国王。 给你一个二维整数数组 queens&#xff0c;其中 queens[i] [xQueeni, yQueeni] 表示第 i 个黑皇后在棋盘上的位置。还给你一个长度为 2 的…

【JVM】字节码指令 invokevirtual

在Java虚拟机&#xff08;JVM&#xff09;中&#xff0c;invokevirtual 是一个字节码指令&#xff0c;用于调用对象实例的方法。它的主要作用是执行对象的虚方法调用&#xff0c;遵循Java语言中的动态分派机制。 例如&#xff0c;假设我们有以下Java代码&#xff1a; Java 1…

AI与广告创意:大模型在广告生成中的应用与挑战

AI与广告创意&#xff1a;大模型在广告生成中的应用与挑战 摘要&#xff1a; 本文将探讨AI大模型在广告创意生成中的应用&#xff0c;并分析其面临的挑战。 引言&#xff1a; 在当今信息爆炸的时代&#xff0c;广告创意生成的重要性不言而喻。广告创意需要吸引目标受众的注…

多维时序 | Matlab实现VMD-CNN-BiLSTM变分模态分解结合卷积神经网络结合双向长短期记忆神经网络多变量时间序列预测

多维时序 | Matlab实现VMD-CNN-BiLSTM变分模态分解结合卷积神经网络结合双向长短期记忆神经网络多变量时间序列预测 目录 多维时序 | Matlab实现VMD-CNN-BiLSTM变分模态分解结合卷积神经网络结合双向长短期记忆神经网络多变量时间序列预测预测效果基本介绍程序设计参考资料 预测…

stm32是用标准库还是hal库?

我大学几年一直都是使用标准库&#xff0c;然后17年毕业第一份工作转为HAL库&#xff0c;主要也是公司需求没办法。然后之后的数年我都是建议转HAL库&#xff0c;并不是这个库有多好&#xff0c;相反小问题很多&#xff0c;但是有一个&#xff0c;这是官方一直在开发维护的库&a…

软件开发秘籍:打造高效的分支管理策略

版本控制策略&#xff1a;如何制定合理的分支管理策略 引言 版本控制是软件开发中至关重要的一环&#xff0c;而合理的分支管理策略则是版本控制成功的关键。本文将介绍如何制定合理的分支管理策略&#xff0c;并通过实际案例和技巧&#xff0c;帮助读者更好地理解和应用。 …

SpringBoot3快速入门

目录 一、快速创建项目 二、手动创建一个工程 一、快速创建项目 1、使用官网提供的spring组件创建一个springboot3工程&#xff0c;springboot3要使用JDK17以上的版本 选择配置点击finish&#xff0c;刷新maven 创建一个controller层&#xff0c;写一个demo&#xff0c;点击运…