$User?.name中问号有啥意义

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了$User?.name中问号有啥意义相关的知识,希望对你有一定的参考价值。

thymeleaf中这样写的意思是如果user不为空,则得到user.name的值,如果user为空,则得到null 参考技术A FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出,用FreeMarker判断对象是否为空的方法。
一般数据在后端判断, 前端不管逻辑只管显示。
freemarker中显示某对象使用$name.
但如果name为null,freemarker就会报错。如果需要判断对象是否为空:<#if name??>……</#if>。当然也可以通过设置默认值$name!""来避免对象为空的错误。如果name为空,就以默认值(“!”后的字符)显示。
对象user,name为user的属性,这时user,name都有可能为空,可以写成$(user.name)!"",表示user或者name为null,都显示为空。

C#中的双问号有啥作用? [复制]

【中文标题】C#中的双问号有啥作用? [复制]【英文标题】:What does a double question mark do in C#? [duplicate]C#中的双问号有什么作用? [复制] 【发布时间】:2010-12-09 03:41:35 【问题描述】:

可能的重复:?? Null Coalescing Operator --> What does coalescing mean?What do two question marks together mean in C#?

我在这里找不到这个问题,所以我想我会问它。 C#中的双问号有什么作用?

例子:

x = y ?? z;

【问题讨论】:

这已经被问过几次了:***.com/questions/1064074/operator-in-c***.com/questions/446835/… ***.com/questions/827454 它让你,以及在话题结束之前回答的每个人,都获得了很多代表 :) [它总是让我惊讶的是 null 合并问题和答案在这里获得代表的速度有多快...] 是的,我以为我会赚大钱,但我脑子有问题,记不住该当的行话。呸。 【参考方案1】:

这是一个空合并运算符。上面的方法说明 x 被赋予 y 的值,除非 y 为空,在这种情况下它被赋予 z 的值。

【讨论】:

【参考方案2】:

来自Wikipedia:

它是 null-coalesce 运算符和它的简写:

x = (y != null ? y : z);

【讨论】:

【参考方案3】:

如果不是null,则使用y,否则使用z

【讨论】:

【参考方案4】:

如果 a 的值 y 为 null,则分配值 z。

例如:

x = Person.Name ?? "No Name";

如果 name 为 null,x 将具有值“No Name”

【讨论】:

【参考方案5】:

如果 y 为 null,x 将被设置为 z。

【讨论】:

【参考方案6】:

.Net framework 2.0 及更高版本允许 Nullable 值类型为 Nullable 值。

在这种情况下,它说 如果 x 有某个值(即不为空),则 x 等于 y,否则等于 z

【讨论】:

【参考方案7】:

正如其他人所说,它是空合并运算符。

有关此的 MSDN 信息:

https://docs.microsoft.com/dotnet/csharp/language-reference/operators/null-coalescing-operator

【讨论】:

以上是关于$User?.name中问号有啥意义的主要内容,如果未能解决你的问题,请参考以下文章

swift中问号和感叹号有啥区别?

一元问号 (?) 运算符有啥作用?

C#中的双问号有啥作用? [复制]

“类型”是啥意思,ECMA 6 中的问号有啥特殊用途吗?

Ruby 中的独立问号有啥作用? [复制]

一个关于Hibernate问号传值问题,请教高手。