首页 > 其他分享 >flutter 空安全、late延迟及required关键词

flutter 空安全、late延迟及required关键词

时间:2024-06-01 10:34:24浏览次数:13  
标签:String age required sex late str flutter name

空安全

DartKotlin一样都是支持空安全,空安全操作符主要有两个:

  • ?可空类型
  • ! 类型断言

可空类型

在之前我们的介绍中,声明一个变量,如:

String str = "A";
str = null;

这个时候str = null代表会报错,提示A value of type 'Null' can't be assigned to a variable of type 'String', 这个是因为str不是一个可空类型。如果要不报错只需这样声明:

String? str = "A";

方法我们也可以实现可空返回类型:

String? getData(data){
  if(data != null){
    return "this is server data";
  }
  return null;
}

 

!非空类型断言

String? str = "this is Dart";
str=null;

// ! 表示如果str不等于null 会打印str的长度
print(str!.length); 

 

late关键字

late关键字主要用于延迟初始化,在声明对象的时候可以不赋初始值:

class Person {
  late String name;
  late int age;

  void setName(String name, int age) {
    this.name = name;
    this.age = age;
  }

  String getName() {
    return name;
  }
}

 

required关键词

required关键词是用来允许根据需要标记任何命名参数(函数或类),使得它们不为空。因为可选参数中必须有个required参数或者该参数有个默认值。

在之前我们介绍Dart命名参数的方法时候有这样的一个方法:

String getUserInfo(String username, {int age = 0, String sex = '男'}) {//形参
  if (age != 0) {
    return "姓名:$username -> 性别:$sex -> 年龄:$age";
  }
  return "姓名:$username -> 性别:$sex -> 年龄保密";
}

getUserInfo("Max");

print(getUserInfo('张三',sex: '男',age: 20));

 

后面两个参数是可选的,如果我们使用required关键词修饰agesex,那我getUserInfo("Max")机会报错,你必须要传:

 
String getUserInfo(String username, {required int age, required String sex}) {//形参
  if (age != 0) {
    return "姓名:$username -> 性别:$sex -> 年龄:$age";
  }
  return "姓名:$username -> 性别:$sex -> 年龄保密";
}

//调用
getUserInfo('张三',sex: '男',age: 20)

 

required关键词可以在我们类的构造方法里使用,这样可以限定了一些初始化必须的操作:

class Person {
  String? name; 
  int age;
  //表示 name 和age 必须传入
  Person({this.name,required this.age});  
}

 

参考: Dart(六)—空安全、late延迟及required关键词 - 掘金 (juejin.cn)

标签:String,age,required,sex,late,str,flutter,name
From: https://www.cnblogs.com/weijian168/p/18225627

相关文章

  • flutter 监听网络HTTP数据流处理
    flutter网络用于HTTP的交互中,有Http和Dio两种方式,本次侧重介绍dio的简单使用1.flutter安装dio插件https://pub-web.flutter-io.cn/中搜索dio插件使用,详细安装如下:2.使用(1)创建CancelToken对象,可然后采用异步的方式进行数据post(本次交互使用post数据的方式),核心......
  • 在我的 Flutter 应用程序中尝试通过 sso 登录时,我看到了一个黑屏
    我正在调用android上flutter_appAuth软件包的authorize方法。下面是该方法的外观:finalresult=awaitFlutterAppAuth(.authorize())finalresult=awaitFlutterAppAuth().authorize(授权请求SSOConstants.clientId、SSOConstants.redirec......
  • Flutter 中的 Opacity 小部件:全面指南
    Flutter中的Opacity小部件:全面指南在Flutter中,动画和视觉效果是提升用户体验的重要手段。Opacity小部件允许你改变子组件的透明度,从而实现淡入、淡出或其它透明度相关的动画效果。本文将提供Opacity的全面指南,帮助你了解如何使用这个小部件来增强你的Flutter应用的视觉......
  • Flutter 中的 LimitedBox 小部件:全面指南
    Flutter中的LimitedBox小部件:全面指南Flutter是一个功能强大的UI框架,它提供了大量的小部件来帮助开发者构建美观且响应式的用户界面。在Flutter的布局小部件中,LimitedBox是一个不太常见但非常有用的组件,它可以用来限制其子组件的最大尺寸。本文将详细介绍Limited......
  • 小白也能听懂的Flutter
    import'package:flutter/material.dart';voidmain(){runApp(MyApp());}classMyAppextendsStatelessWidget{@overrideWidgetbuild(BuildContextcontext){returnconstMaterialApp(home:Scaffold(appBar:null,......
  • flutter - [03] 运算符&条件表达式
    题记部分 一、算术运算符运算符说明示例(a=13,b=5)+加print(a+b);-减print(a-b);*乘print(a*b);/除print(a/b);~/取整print(a~/b);%取余print(a%b);   二、关系运算符  三、逻辑运算符  四、赋值运算符 五、条件......
  • Flutter将视频或图文分享到抖音
    如何在Flutter中分享视频到抖音话不多说,先上效果:原理发布内容至抖音H5场景_移动/网站应用_抖音开放平台(open-douyin.com)本教程没有接入抖音原生SDK以及任何第三方插件,使用抖音的h5分享接口配合url_launcher插件实现跳转至抖音分享页面需要分享的资源需要被部......
  • flutter - [01] Dart概述
    题记部分 一、什么是dartdart是由谷歌开发的计算机编程语言,可以被用于web、服务器、移动应用和物联网等领域的开发dart诞生于2011年,号称要取代JavaScript。但是过去的几年中一直不温不火,直到Flutter出现后,被人们重新重视。要学习Flutter,必须首先得学习Dart。dart官网:htt......
  • flutter - [02] 基本语法
    题记部分 一、注释///这是一个注释//这也是个注释/*这还是个注释*/voidmain(List<String>args){print('你好dart');} 二、声明变量varstr='thisisvar';Stringstr='thisisvar';  三、标题   —业精于勤荒于嬉,行成于思毁于随—......
  • 【Flutter】基础环境搭建
      一、下载安装 配置FlutterFlutter是一个开发SDK,官网下载地址:https://docs.flutter.dev/release/archive?tab=windows 压缩包直接解压: 同时对用户和系统变量添加Flutter的命令执行变量 进入CMD,输入flutter检查变量是否生效: 使用flutterdoctor初始化......