Flutter中Dart语言常用知识
目录
- 1. 变量和数据类型
- 2. 函数
- 3. 类
- 4. 异常处理
- 5. 泛型
- 6. 变量声明和类型推断:
- 7. 函数定义:
- 8. 类定义和实例化:
- 9. 接口定义:
- 10. 抽象类定义:
- 11. 混合类型列表:
- 12. Flutter 中的 UI 组件:
- 13.Dart特点
Flutter 是一种使用 Dart 语言开发的跨平台移动应用程序框架。在 Flutter 中,Dart 语言是主要的编程语言,它提供了许多强大的功能和语法糖,可以让开发者更轻松地构建高性能、美观的应用程序。下面是 Flutter 中 Dart 语言的一些详细介绍和代码示例:
1. 变量和数据类型
在 Dart 语言中,变量不需要声明,可以直接赋值。Dart 语言支持多种数据类型,包括整数、浮点数、布尔值、字符串、列表、映射等。例如:
int a = 10;
double b = 3.14;
bool c = true;
String str = "Hello World";
List<int> numbers = [1, 2, 3];
Map<String, int> map = {"key": 10};
2. 函数
Dart 语言中的函数可以看作是一段可重用的代码块。函数支持参数和返回值,可以进行匿名函数和函数式编程。例如:
void printHello(String name) { print("Hello, $name");
}
void main() { printHello("World");
}
int add(int a, int b) { return a + b;
}
int sum = add(3, 5);
print("The sum is $sum");
3. 类
Dart 语言中的类是一种面向对象的编程方式,它可以用来定义对象、函数和变量。类可以包含构造函数、成员变量和方法,支持继承和多态。例如:
class Person { final String name; final int age;Person(this.name, this.age);void sayHello() { print("Hello, my name is $name and I am $age years old"); }
}
void main() { Person person = new Person("John", 30); person.sayHello();
}
4. 异常处理
在 Dart 语言中,异常处理是一种处理程序运行时错误的方式。可以使用 try-catch 语句来捕获和处理异常。例如:
void main() { try { int divider = 10; int result = divider / 0; print("The result is $result"); } catch (Exception e) { print("An error occurred: $e"); }
}
上述代码会抛出一个异常,因为除数为 0。在 catch 语句中,可以捕获该异常并进行处理。
5. 泛型
泛型是一种跨多种数据类型的编程方式,它可以用来定义类型参数,使得代码可以重用。例如:
class List<T> { T element;List(this.element);void add(T value) { element = value; }
}
void main() { List<String> strings = new List<String>("Hello"); strings.add("World"); print(strings.element); // 输出 "World"List<int> numbers = new List<int>(1); numbers.add(2); print(numbers.element); // 输出 2
}
6. 变量声明和类型推断:
var a = 1;
var b = "Hello";
7. 函数定义:
function greet(String name) { print('Hello, $name!');
}
8. 类定义和实例化:
class Person { String name; int age;Person(this.name, this.age);
}
var person = Person("Alice", 30);
9. 接口定义:
interface OnClickListener { void onClick();
}
10. 抽象类定义:
abstract class AbstractButton { void click();
}
11. 混合类型列表:
void main() { List<String> names = ['Alice', 'Bob', 'Charlie'];
}
12. Flutter 中的 UI 组件:
import 'package:flutter/material.dart';
void main() { runApp(MyApp());
}
class MyApp extends StatelessWidget { Widget build(BuildContext context) { return MaterialApp( title: 'My Flutter App', home: Scaffold( appBar: AppBar( title: Text('Hello World'), ), body: Center( child: Text('Hello, World!'), ), ), ); }
}
以上是 Flutter 中 Dart 语言的一些主要特点和语法糖。Dart 语言是一种功能强大、易于学习和使用的编程语言,它可以帮助开发者快速构建高性能、美观的应用程序。
13.Dart特点
Flutter 是一个基于 Dart 语言的移动应用程序开发框架。以下是一些关于 Dart 在 Flutter 中的应用的详细知识汇总:
- 语言特性:Dart 是一种支持面向对象、函数式和声明式编程范式的语言,具有许多现代语言的特点,如类型推断、接口、抽象类、混合类型列表等。
- 垃圾回收:Dart 的垃圾回收机制可以自动管理内存,避免手动管理内存的繁琐和错误。
- 异常处理:Dart 提供了 try-catch-finally 异常处理机制,可以方便地捕获和处理异常。
- 泛型:Dart 支持泛型编程,允许开发者编写一段处理多种类型的代码,从而提高代码的可复用性和可维护性。
- 函数式编程:Dart 具有函数式编程的特点,如高阶函数、匿名函数、闭包等,使得代码更加简洁、灵活和易于维护。
- 异步编程:Dart 提供了异步编程的能力,使用 async/await 关键字可以方便地编写异步代码,避免了复杂的回调和状态管理。
- 包管理:Dart 使用 pubspec.yaml 文件进行依赖管理,可以方便地添加、更新和删除依赖库。
- 构建工具:Dart 使用构建工具 Dart SDK,可以方便地编译、测试和运行应用程序。
- UI 框架:Flutter 使用 Dart 语言编写了自定义的 UI 框架,提供了丰富的 UI 组件和布局系统,可以方便地构建美观、响应式的应用程序。
- 跨平台:Dart 具有跨平台特性,使用 Flutter 可以轻松地为 iOS、Android、Web 和桌面端构建应用程序。
- 调试:Dart 提供了丰富的调试工具和 API,可以方便地调试和诊断应用程序。
- 性能优化:Dart 具有高效的 JIT 和 AOT 编译机制,可以优化应用程序的性能和启动速度。
总结起来,Dart 在 Flutter 中扮演着至关重要的角色,提供了许多强大的语言特性和工具,使得 Flutter 成为了一个高效、灵活和易于使用的应用程序开发框架。
相关文章:
Flutter中Dart语言常用知识
目录 1. 变量和数据类型2. 函数3. 类4. 异常处理5. 泛型6. 变量声明和类型推断:7. 函数定义:8. 类定义和实例化:9. 接口定义:10. 抽象类定义:11. 混合类型列表:12. Flutter 中的 UI 组件:13.Dar…...
11万多英藏对照词典英藏翻译ACCESS\EXCEL数据库
今天继续发一个藏文藏语相关的翻译数据库,即英藏对照词典,加上《5万6千多藏文词典解释ACCESS数据库》以及昨天发的《近13万汉藏对照词典汉藏翻译ACCESS\EXCEL数据库》藏文类的数据就算较全了。 截图下方有显示“共有记录数”,截图包含了表的所…...
浅谈C语言分支循环语句
为什么需要循环控制? 因为在日常生活中或者在程序所处理的问题中常常遇见需要重复处理的问题,用循环语句可以提高代码的运行效率,更快的解决日常生活中遇到的问题。 循环嵌套 就是传说中的套娃,不同的循环语句都可以互相嵌套。 …...
Spring Boot Starter 剖析与实践 | 京东云技术团队
引言 对于 Java 开发人员来说,Spring 框架几乎是必不可少的。它是一个广泛用于开发企业应用程序的开源轻量级框架。近几年,Spring Boot 在传统 Spring 框架的基础上应运而生,不仅提供了 Spring 的全部功能,还使开发人员更加便捷地…...
技术能力提升-《系统架构设计师教程》
在最近的月度读书会上,国林哥分享了下对《系统架构设计教程》的一点见解,在技术管理摸爬滚打了多年,觉得这个认证还是有一定价值,希望对有兴趣了解这门认证考试的朋友有所帮助,起到抛砖引玉的作用。 国林哥从以下四个方…...
【LeetCode 热题 100】矩阵 专题(大多原地算法,需要一定思维)
解题思路 在 代码注释中! 文章目录 73. 矩阵置零54. 螺旋矩阵48. 旋转图像240. 搜索二维矩阵 II 73. 矩阵置零 class Solution { public:void setZeroes(vector<vector<int>>& matrix) {// 难点:原地算法// 直接复用 matrix 第一行 和 …...
Java 中为什么要把一个数模(10^9+7)
在计算机科学和编程中,经常会遇到需要对结果进行取模操作的情况。模运算是指将一个数除以另一个数,并取得余数的运算。 在 Java 中,常见的一个数取模的值是 (10^97),即 1000000007。这个特定的数值经常在算法和数学计算中被使用&…...
RPC与REST有什么区别?
原文:RPC与REST有什么区别? 背景 好多开发的同学在工作中,经常分不清RPC和REST的区别,导致经常沟通不在一个层次上。甚至有些同学把这两个当成同一个东西。 RPC与REST的区别? 对比名称 rpc rest 备注 架构风格 RP…...
时间复杂度介绍及其计算
时间复杂度 1.算法效率 如何衡量一个算法的好坏呢?看这段代码: long long Fib(int N) {if(N < 3)return 1;return Fib(N-1) Fib(N-2); }这是斐波那契数列的递归代码,非常简洁,那么这就一定说明它好吗?答案显而易…...
etcd实现大规模服务治理应用实战
导读:服务治理目前越来越被企业建设所重视,特别现在云原生,微服务等各种技术被更多的企业所应用,本文内容是百度小程序团队基于大模型服务治理实战经验的一些总结,同时结合当前较火的分布式开源kv产品etcd,…...
目标检测中 anchor base和anchor free
目标检测中两种不同anchor的生成 趋势:anchor free越来越受到实时性检测的青睐,,,...
TypeC拓展设计方案|TypeC转HDMI设计方案|CS5261/CS5265芯片设计参数对比
集睿智远CS5261/CS5265都可以用于设计TypeC转HDMI方案,低成本TypeC扩展坞设计方案,而两者也有些差异:1.CS5261支持DP1.4输入,一个HDMI1.4输出,即HDMI输出为4K30HZ ;CS5265DP1.4到HDMI2.0转换芯片,即HDMI输出…...
SQL Developer中的Active Data Guard
这篇文章 Display Data Guard configuration in SQL Developer 中,用SQL Developer展示了多种ADG的拓扑。 今天自己也试了一下,还蛮简单的,其实最麻烦的部分在于搭建一个ADG环境。 假设我已有一个ADG环境,即最典型的环境&#x…...
谈谈FFT到底有何用
谈谈FFT到底有何用 FFT快速傅里叶变换是数字信号处理的经典算法,学过DSP或者芯片设计的人大多知道这个算法;但是,大家是否想过,为什么数字信号处理会有那么多FFT呢有人会说,为了分析信号的频谱;那么下边的问题就是,分析频谱对我们的日常需求,比如手机打电话,雷达测量速度和方向…...
MATLAB | 如何绘制这样的描边散点图?
part.-1 前前言 最近略忙可能更新的内容会比较简单,见谅哇,今日更新内容: part.0 前言 看到gzhBYtools科研笔记(推荐大家可以去瞅瞅,有很多有意思的图形的R语言复现!!)做了这样一张图: 感觉很…...
偶数科技与白鲸开源完成兼容性认证
近日,偶数科技自主研发的云原生分布式数据库 OushuDB v5.0 完成了与白鲸开源集成调度工具 WhaleStudio v2.0 的兼容性相互认证测试。 测试结果显示,双方产品相互良好兼容,稳定运行、安全,同时可以满足性能需求,为企业级…...
【机器学习】Feature scaling and Learning Rate (Multi-variable)
Feature scaling and Learning Rate 1、数据集2、学习率2.1 α \alpha α 9.9e-72.2 α \alpha α 9e-72.3 α \alpha α 1e-7 3、特征缩放3.1 特征缩放的原因3.2 Z-score 归一化3.3 预测3.4 损失等值线 导入所需的库 import numpy as np np.set_printoptions(precision…...
windows编译ncnn
官方代码https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-windows-x64-using-visual-studio-community-2017 编译工具 visual studio 2017 一、编译protobuf 1、下载protobuf protobuf-3.11.2:https://github.com/google/protobuf/archive/v3.11…...
C++和Lua交互总结
C和Lua交互总结 Chapter1. C和Lua交互总结一、Lua与C的交互机制——Lua堆栈二、堆栈的操作三、C 调用 Lua1)C获取Lua值2)C调用Lua函数示例: 四、Lua 调用 C包装C函数 最后总结一下 Chapter1. C和Lua交互总结 原文链接:https://bl…...
nvm安装和切换node版本
1、nvm list查看已安装的node版本 2、查看当前使用的npm和node版本 3、安装某版本的node 4、 切换node版本...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
