descendant和offspring有啥区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了descendant和offspring有啥区别相关的知识,希望对你有一定的参考价值。
descendant和offspring的区别为:指代不同、用法不同、侧重点不同。
一、指代不同
1、descendantant:后裔,后代。
2、offspring:子女,后代。
二、用法不同
1、descendant:descend的基本意思是“下来”“下去”,可指物体向下降落,也可指沿着山坡、梯子、台阶、树干等表示斜线或斜坡的物体下降。descend可用作及物动词,也可用作不及物动词,用作不及物动词时
2、offspring:基本意思是“继承人,接班人”,引申可表示“传统、才干、性格等的继承者”。spring的基本意思是“跃”,指经过一段时间潜伏或准备后突然而迅速地从某处跳起或出现,强调跳得轻、快、美或突然,给人一种弹性感。
三、侧重点不同
1、descendant:可以做形容词,为名词单数。
2、offspring:有“结果、产物”的意思,是个群体。
参考技术A 1、都有“子孙、后代、子女”的意思。当表示“子孙、后代”时,descendant一般为名词单数,前面加a 。而offspring是名词复数,是个群体。
例句:His offspring are diligent and intelligent.
他的后代既勤奋又聪明。
2、另外,offspring有“结果、产物”的意思,而descendant没有这个意思。
3、descendant可以做形容词,意思是
1.下降的;降落的
2.祖传的,世袭的本回答被提问者采纳
Flutter 中 required 和 @required 有啥区别。它们之间有啥区别,我们啥时候需要使用它们?
【中文标题】Flutter 中 required 和 @required 有啥区别。它们之间有啥区别,我们啥时候需要使用它们?【英文标题】:what is the difference between required and @required in flutter. What is the difference between them and when do we need to use them?Flutter 中 required 和 @required 有什么区别。它们之间有什么区别,我们什么时候需要使用它们? 【发布时间】:2021-08-10 23:36:48 【问题描述】:如果我从命名参数中删除required
,它会给我一个错误:
参数 'color' // 不能有 'null' 的值,因为它 类型,但隐含的默认值为 'null'。
它们有什么区别,什么时候需要用到?
class RoundedButton extends StatelessWidget
late final Color color;
final String title;
final VoidCallback? onPressedInput;
RoundedButton(
required this.color,
required this.title,
@required this.onPressedInput);
@override
Widget build(BuildContext context)
return Padding(
padding: EdgeInsets.symmetric(vertical: 16.0),
child: Material(
color: color,
borderRadius: BorderRadius.circular(30.0),
elevation: 5.0,
child: MaterialButton(
onPressed: onPressedInput,
minWidth: 200.0,
height: 42.0,
child: Text(
title,
),
),
),
);
【问题讨论】:
从 Dart 2.12/Flutter 2.0 开始,你不应该再次使用@required
,而应该在你有一个不可为空的命名参数时始终使用required
。
【参考方案1】:
@required
只是一个注释,它允许分析器让您知道您缺少一个命名参数,仅此而已。所以你仍然可以编译应用程序,如果这个命名参数没有被传递,你可能会得到一个异常。
然而,dart 中添加了合理的 null 安全性,required
现在是一个关键字,需要传递给命名参数,这样如果没有传递这个参数,它就不会让编译器运行。它使您的代码更加严格和安全。
如果你真的认为这个变量可以为空,那么你可以通过在其后添加?
来更改类型,这样就不需要必需的关键字,或者你可以为参数添加一个默认值。
【讨论】:
so required 比@required 强? 是的,required 是强制性的,而@required 不是【参考方案2】:https://dart.dev/null-safety/faq#how-does-required-compare-to-the-new-required-keyword
@required 注释标记必须传递的命名参数;如果 不是,分析器会报告一个提示。
使用 null 安全性,具有不可为 null 类型的命名参数必须 要么有一个默认值,要么用新的 required 关键字标记。 否则,它不可为空是没有意义的,因为 未通过时默认为null。
当从遗留代码调用空安全代码时,必需的关键字是 与@required 注释完全一样对待:未能提供 参数将导致分析器提示。
当从空安全代码调用空安全代码时,未能提供 必需的参数是一个错误。
这对迁移意味着什么?如果在需要添加的地方要小心 之前没有@required。任何未通过的呼叫者 新需要的参数将不再编译。相反,您可以添加 默认值或使参数类型可为空。
【讨论】:
以上是关于descendant和offspring有啥区别的主要内容,如果未能解决你的问题,请参考以下文章
HDU 3887 Counting Offspring(DFS序)
HDU3887 Counting Offspring [2017年6月计划 树上问题03]