当前位置: 首页 > news >正文

乐清建设路小学校园网站网站建设 项目要求

乐清建设路小学校园网站,网站建设 项目要求,wordpress 加载页面内容,怎么在百度上建立网站028问号可选类型可空类型保存null空String的isEmpty和NotEmpty ?问号可选类型可空类型保存null叹号强制解包??双冒号运算符String的isEmpty和isNotEmpty ? 问号可选类型,可空类型 可选类型可以保存null,就是空的意思 String.isEmpty 是判断是否是空白字符串,他并不是null…

028问号可选类型可空类型保存null空String的isEmpty和NotEmpty

?问号可选类型可空类型保存null叹号强制解包??双冒号运算符String的isEmpty和isNotEmpty

  • ? 问号可选类型,可空类型

  • 可选类型可以保存null,就是空的意思

  • String.isEmpty 是判断是否是空白字符串,他并不是null,不是空,依然有值,只不过值是空白字符串""

  • isNotEmpty跟isEmpty完全相反,是判断是否不是空白字符串

  • 如果给可选类型赋值null,那么isEmpty不能运行

  • !强制解包,把可选类型变成非可选类型,例如把String?变成String,把int? 变成int但是如果可选类型里面保存的值是null,那么运行报错

  • str!; //!强制解包,把?可选类型变成正常的String类型,但是因为str!强制解包以后,里面真的是一个null,运行会报错

  • 双冒号?? 运算符,代表,如果?? 左边是null,那么就返回右边的值,如果左边不是null,那么就返回做编制

1. 问号可选类型(可空类型)

 main() {// ? 问号可选类型,可空类型int? i1 = 100;i1 = null; // null代表空print(i1);}

运行结果

 null

解释

  • int? i1 = 100; 定义了一个可选类型(可空类型)的变量 i1,它可以存储 int 类型的值,也可以是 null

  • i1 = null;i1 赋值为 null,表示该变量不保存任何有效值。

  • print(i1); 输出 null,因为 i1 被赋值为 null


2. 可选类型的默认值

 main() {// 如果可选类型没有赋值初始值,那么默认值是nullint? i2;print(i2);}

运行结果

 null

解释

  • int? i2; 声明了一个可选类型的变量 i2,但是没有给它赋初值。

  • Dart 中可选类型(?)的变量如果没有显式赋值,则默认值是 null

  • print(i2); 输出 null,因为 i2 没有赋值,默认值为 null

3. 字符串可选类型

 main() {String? str;str = "abc";print(str);}

运行结果

 abc

解释

  • String? str; 声明了一个可选类型的字符串变量 str,它可以存储一个 String 类型的值或 null

  • str = "abc";str 赋值为一个非空字符串 "abc"

  • print(str); 输出 abc,因为 str 被赋值为字符串 "abc"

4. 使用 isEmptyisNotEmpty 判断字符串是否为空

 main() {String? str;str = "abc";​bool r1 = str.isEmpty;  // 判断str是否为空字符串(""),此时str为"abc",返回falser1 = str.isNotEmpty;  // 判断str是否不是空字符串,此时str为"abc",返回true​print(r1);}

运行结果

 true

解释

  • str.isEmpty; 判断 str 是否为空字符串。由于 str 的值是 "abc",它不是空字符串,因此 isEmpty 返回 false

  • str.isNotEmpty; 判断 str 是否不是空字符串。由于 str 的值是 "abc",它不是空字符串,因此 isNotEmpty 返回 true

  • print(r1); 输出 true,因为最后 r1 保存的是 str.isNotEmpty 的返回值。

029可空类型叹号强制解包问号双问号运算符trycatch捕获异常

1. 强制解包(!

 // 因为可选类型不能进行 运算,例如 判断是否 >60,所以用 !强制解包,把 可选类型变成普通的非空类型// !强制解包,把可选类型变成非可选类型,例如把String?变成String,把int? 变成int但是如果可选类型里面保存的值是null,那么运行报错//把可选类型当做函数形参/*try{//容易出错的代码}catch(e){//出错后执行的代码}*/
  • score! 是 Dart 中的 强制解包运算符。它的作用是将一个可选类型(例如 int?,即可以为 nullint 的类型)转换为非空类型(int)。

  • score 是一个 int? 类型的变量,意味着它可以存储一个 int 或者 null。但通过 ! 运算符,开发者明确告诉 Dart 编译器:“我确定 score 不是 null,请将其作为非空的 int 来处理。”

  • 如果 score 的值为 null,在执行 score! 时,Dart 会抛出一个运行时异常,程序会中断。

 fn1(int? score) {// 强制解包try {score!; // 当强制解包里面存的值是null的时候,程序会中断if (score > 60) {print("及格");} else {print("不及格");}} catch (e) {print("e=$e");}​var s2 = score; // 上面的强制解包在try里面,作用于不一样,这里score没有去掉null,还是可选类型score = 100;// score!; // 这里运行会有警告,因为上面已经给score赋值了0,那么编译器已经把score当做int类型来看,不能再使用强制解包}

运行结果

  • 如果传递

     null

     score

    ,程序会抛出异常并输出:

     e=NoSuchMethodError: The method '>' was called on null.
  • 如果传递

     100

     score

    ,程序会输出:

     及格

解释

  • score! 是强制解包,它将可选类型(int?)转换为非空类型(int)。如果 scorenull,解包时程序会抛出异常。

  • try-catch 语句中,catch 捕获了异常并打印了错误信息。

  • score 被赋值为 100 后,强制解包就不会再出错,程序判断并输出 "及格"

2. 警告:强制解包后的类型

 score = 100;score!;  // 这里运行会有警告,因为score已经被赋值为int类型

运行结果

没有输出,但会在编译时显示警告:

 Warning: Operand of null-aware operation '!' has type 'int' which excludes null.

解释

  • score 已经被赋值为 100,它的类型变成了 int,不再是可选类型 int?。此时,再使用 ! 强制解包会导致编译时警告,因为 score 已经是一个非空类型,! 强制解包不再适用。

3. 双问号运算符(??

 fn2(String? str) {var str2 = str ?? "默认值";print("str2=$str2");str=“abc”;str;//这里已经变成了String//这里因为str是String所以不能用 ??去运算,会有警告Warning: Operand of null-aware operation '??' has type 'String' which excludes null.}

运行结果

  • 如果传递

     "abc"

     str

    ,输出:

     str2=abc
  • 如果传递

     null

     str

    ,输出:

    str2=默认值

解释

  • 这段代码处理了 null 值的情况,当 strnull 时,提供一个默认值。

  • 双冒号?? 运算符,代表,如果?? 左边是null,那么就返回右边的值,如果左边不是null,那么就返回左边的值

  • str.isEmpty;//注意可选类型不能直接使用在String的方法,需要先转化成String类型

  • var str2 = str!;//之前我们用强制解包,但是如果遇到null就会中断,需要用try catch来捕获异常

4. 使用 ?. 运算符

fn3(String? str) {var r1 = str?.isEmpty ?? false;print("r1=$r1");
}

运行结果

  • 如果传递

    "abc"

    str

    ,输出:

    r1=true
  • 如果传递

    null

    str

    ,输出:

    r1=false

解释

  • ?. 运算符是可空类型的安全访问运算符。它会检查 str 是否为 null,如果是 null,则直接返回 null,否则调用 isEmpty 方法。

  • 如果 strnullr1 会被赋值为 false(通过 ?? 提供默认值)。如果 str 是非 null 字符串,则调用 isEmpty 方法判断字符串是否为空。

5. 综合示例:强制解包与空值判断

main() {fn1(null);   fn1(100);   int? i1 ;i1 > 100;var i2=i1;fn2("abc");  fn2(null);   fn3("abc"); fn3(null);  
}

运行结果

e=NoSuchMethodError: The method '>' was called on null.
及格
str2=abc
str2=默认值
r1=true
r1=false

解释

  • fn1(null):传递 nullscore,程序会抛出异常并输出错误信息。

  • fn1(100):传递 100score,程序不会抛出异常,并输出 "及格"

  • fn2("abc"):传递 "abc"str,返回 str 本身,输出 "str2=abc"

  • fn2(null):传递 nullstr,返回默认值 "默认值",输出 "str2=默认值"

  • fn3("abc"):传递 "abc"str,检查是否为空,输出 r1=true

  • fn3(null):传递 nullstr,由于 strnull,输出 r1=false

http://www.yayakq.cn/news/125685/

相关文章:

  • 广西地矿建设集团网站缩短链接生成器
  • 销售网站怎么做wordpress 密码生成二维码
  • 新手做自己的网站网站建站流程有哪些
  • 怀远网站建设wordpress 跳转 微信支付宝
  • wordpress只能下载一个文件下载深圳seo排名哪家好
  • 网站维护 收录网站分屏布局设计
  • 代刷网站开发马鞍山市建设银行网站
  • 网站步骤村建站是什么部门
  • 织梦模板网站wordpress 分析
  • 樟木头仿做网站做网站需要多少钱 都包括什么
  • 怎么给餐饮店做网站自己做网站还是开淘宝
  • wordpress 创建网站动漫制作教学
  • 平面设计兼职网站网站开发软件成本
  • 购物网站建设网站购买域名后如何建设网站
  • 有什么网站可以做深圳初二的试卷练习网站制作北京
  • 自己怎么做微网站wordpress 微服务
  • 做游戏网站思想步骤商城网站离不开支付系统
  • 做暧暧网站在线昆明免费网站建设
  • 国外有哪些优秀的网站wordpress 媒体库 分离
  • 韩国服装网站建设怎么做推广比较成功
  • 申请域名的网站丽水网站开发公司电话
  • 建的企业网站如何在百度搜到吉林省住房和城乡建设厅网站申报
  • fomo3d 网站怎么做网站排名怎么弄
  • 网站建设 蜀美网络网站备案帐号是什么情况
  • 建一个全部由自己控制的网站需要多少钱东莞微信网站建设更好
  • 青州网站建设 258做gif有什么网站
  • 公司合法网站域名怎么注册短视频排名seo
  • 深圳市官方网站云南哪里可以制作自己的网页
  • 郑州网站建设易云巢南通五建宏业建设工程有限公司网站
  • 网站创建器镇江有哪些网站