Flutter基础语法(六)var、final、const、late

这篇具有很好参考价值的文章主要介绍了Flutter基础语法(六)var、final、const、late。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Flutter基础

第六章 Flutter关键字var、final、const、late的区别与使用



前言

在使用flutter开发已经有一段时间了,在之前都是快速开发,没有时间去复盘自己的知识体系,现在就从flutter的基本语法开始,一步步分析flutter涉及到的细节问题,希望对你有所帮助。


一、var

1.var是什么?

  • var就是定义变量的意思。
  • var定义的变量会自动推断类型
  • dart 中使用 var声明变量,可以赋值不同类型的值,会自动推断变量的类型。
  • var 声明的变量如果没有初始化,那么它的值是nil

2.var如何使用

var 声明的变量,如果没有指定类型,是一个dynamic动态类型

var a;
print("打印==${a.runtimeType}");//打印==Null

var b;
b = "hello world";
print("打印==$b");//打印==hello world
print("打印==${b.runtimeType}");//打印==String

3.var自动推断类型

var b;
b = true;
print("打印==$b"); //打印==true
print("打印==${b.runtimeType}"); //打印==bool

4.var可以再次赋值

本来是bool类型的,后面变成了int类型

var b;
b = true;
print("打印==$b"); //打印==true
print("打印==${b.runtimeType}"); //打印==bool

b = 100;
print("打印==$b"); //打印==100
print("打印==${b.runtimeType}"); //打印==int

5.var指定类型

在声明时候就赋值,则相当于指定类型,如果再赋值其他类型会报错

var b = 100;
b = true;//Error: A value of type 'bool' can't be assigned to a variable of type 'int'.b = true;
    
print("打印==$b"); //打印==true
print("打印==${b.runtimeType}"); //打印==bool

二、final

1.final是什么?

  • 使用final声明的变量,它只能赋值一次。
  • final修饰的是一个最终的变量,不能再次赋值,否则会报错
  • 可以先声明再次赋值,但是只能赋值一次

2.final声明但不赋值

final声明的变量,如果不赋值,则无法使用,如runtimeType等方法。

final a;//The final variable 'a' can't be read because it's potentially unassigned at this point
print("打印==${a.runtimeType}");//报错

3.final赋值多次

final声明的变量,不能多次赋值,否则报错。

final a;
a = 100;
a = 'hello world';//Final variable 'a' might already be assigned at this point.a = 'hello world';
print("打印==${a.runtimeType}"); //

4.final正常使用

final a = 100;
print("打印==$a"); //打印==100
print("打印==${a.runtimeType}"); //打印==int

三、const

1.const是什么?

  • const修饰常量,声明的时候就得赋值,这也是和变量最大的区别

2.const声明但不赋值

声明不赋值会报错:

///lib/modules/dart/xxx.dart:20:11: Error: The const variable 'a' must be initialized.
/// Try adding an initializer ('= expression') to the declaration.
///     const a;
const a;
print("打印==$a"); //打印==100
print("打印==${a.runtimeType}"); //打印==int

3.const赋值多次

final声明的变量,不能多次赋值,否则报错。

///Error: Can't assign to the const variable 'a'.
///     a = 200;
const a = 100;
a = 200;
print("打印==$a"); //打印==100
print("打印==${a.runtimeType}"); //打印==int

4.const正常使用

const a = 100;
print("打印==$a"); //打印==100
print("打印==${a.runtimeType}"); //打印==int

三、late

1.late是什么?

  • Dart 2.12引入了late修饰符
  • 显式声明一个非空的变量,但不初始化
  • 如果不加late关键字,类实例化时此值是不确定的,无法通过静态检查,加上late关键字可以通过静态检查,但由此会带来运行时风险
  • 延迟初始化变量。如果这个变量没有被使用的话就不会被初始化,初始化语句不会执行。

2.late声明但不赋值

声明不赋值不会报错:

///Error: Late variable 'a' without initializer is definitely unassigned.
///     print("打印==${a.runtimeType}"); //打印==int
late int a;
print("打印==$a"); //打印==100
print("打印==${a.runtimeType}"); //打印==int

3.late赋值多次

已经指定了类型,不能赋值别的类型

late int a;
a = 100;
a = 300;
print("打印==$a"); //打印==300
print("打印==${a.runtimeType}"); //打印==int

4.late正常使用

late int a;
a = 100;
print("打印==$a"); //打印==100
print("打印==${a.runtimeType}"); //打印==int

总结

以上就是今天要讲的内容,本文仅仅简单介绍了var、final、const、late的使用。希望文章对你有所帮助,后续继续完善。文章来源地址https://www.toymoban.com/news/detail-690197.html

到了这里,关于Flutter基础语法(六)var、final、const、late的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【JavaScript】 var let const 的区别

    在JavaScript中,let、var和const是用于声明变量的,它们之间有一些重要的区别: var是在ES5(ECMAScript 5)中引入的声明变量的。 变量声明的作用域是函数作用域,而不是块级作用域。这意味着在函数内声明的变量在整个函数范围内都是可见的。 如果在块级作用域内

    2024年02月15日
    浏览(33)
  • Flutter系列文章-Flutter基础

    Flutter是Google推出的一种新的移动应用开发框架,允许开发者使用一套代码库同时开发Android和iOS应用。它的设计理念、框架结构、以及对Widget的使用,都让开发者能更有效率地创建高质量的应用。 Flutter的设计理念是“一切皆为Widget”。这意味着不论是按钮、字体、颜色、布局

    2024年02月16日
    浏览(34)
  • 【Flutter -- 基础】快速入门 Flutter

    一、Flutter 介绍 Flutter app 使用了 Dart 语言,源自于 Google,现在是 ECMA 的标准。Dart 吸收了许多现代语言的特性,比如 Kotlin 和 Swift,同时能被转译成 js 代码。 作为一个跨平台框架,Flutter 和 React Native 非常像,因为 Flutter 支持响应式和声明式语法。但和 React Native 不同,Flutt

    2024年02月02日
    浏览(31)
  • Flutter学习四:Flutter开发基础(六)调试Flutter应用

    目录 0 引言 1 调试Flutter应用 1.1 日志与断点 1.1.1 debugger() 声明 1.1.2 print和debugPrint 1.1.3 调试模式、中间模式、发布模式 1.1.4 断点 1.2 调试应用程序层 1.2.1 转储Widgets树 1.2.2  转储渲染树 1.2.3 转储Layer树 1.2.4 转储语义树 1.2.5 调度(打印帧的开始和结束) 1.2.6 可视化调试

    2024年02月12日
    浏览(44)
  • let、const、var的区别,解构赋值,箭头函数

    使用var声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象。 使用let声明的变量,其作用域为该语句所在的代码块内,不存在变量提升。 使用const声明的是常量,在后面出现的代码块中,不能在修改改常量的值。 var let const 函数级作用域 块级作用域 块级作用域 变量提

    2024年02月05日
    浏览(38)
  • 深入解析JavaScript中的var、let和const

    🧑‍🎓 个人主页: 《爱蹦跶的大A阿》 🔥 当前正在更新专栏: 《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​  ​         变量的声明是编程中非常基础和关键的概念。在ES6之前,JavaScript只有var一种声明变量的方式。ES6带来了let和const来声明变量

    2024年01月20日
    浏览(34)
  • JavaScript 中的 Var、Let 和 Const 有什么区别

    ES2015(ES6)推出了许多闪亮的新功能。从 2020 年开始,我们假设许多 JavaScript 开发人员已经熟悉并开始使用这些功能。 尽管这个假设可能部分正确,但是其中某些功能可能对一些开发人员来说仍然是个谜。 ES6 附带的功能之一是添加了 let 和 const ,可用于变量声明。问题是,

    2024年02月09日
    浏览(58)
  • Flutter学习四:Flutter开发基础(四)包管理

    目录 0 引言 1 包管理 1.1 简介 1.2 Pub仓库 1.3 依赖Pub仓库 1.3.1 查找包  1.3.2 添加包 1.3.3 下载包 1.3.4 引入包  1.3.5 使用包 1.4 其他依赖方式 1.4.1 依赖本地包 1.4.2 依赖git仓库 1.4.3 不常用的依赖方式 本文是对第二版序 | 《Flutter实战·第二版》 (flutterchina.club)的学习和总结。 在

    2024年02月12日
    浏览(52)
  • 【第四章 flutter学习之flutter基础组件】

    android、ios各自平台的资源文件 lib 项目目录 linux macos PC平台资源文件 web web平台资源文件 其他的基本上是一些配置文件 pubspec.yaml 配置文件类似vue中的json 核心文件是main.dart文件 首先我们先清空main.dart文件 引入主题 import ‘package:flutter/material.dart’; 定义入口方法 用来调用组件

    2024年02月15日
    浏览(41)
  • Flutter学习四:Flutter开发基础(三)路由管理

    目录 0 引言 1 路由管理  1.1 MaterialPageRoute 1.2 Navigator  1.2.1 Future push(BuildContext context, Route route) 1.2.2  bool pop(BuildContext context, [ result ]) 1.2.3  Future pushNamed(BuildContext context, String routeName,{Object arguments}) 1.3 非命名路由传值 1.4 命名路由  1.4.1 路由表 1.4.2 注册路由表 1.4.3 通过

    2024年02月09日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包