Syntax 如果未定义赋值变量,是否有语法糖的语言?

Syntax 如果未定义赋值变量,是否有语法糖的语言?,syntax,syntactic-sugar,Syntax,Syntactic Sugar,在几乎每种语言中,我都倾向于编写一些东西,如果未定义变量,则将其设置为默认值。每次我都会惊讶为什么语法不简单,例如为什么我必须写两次变量名才能将其设置为默认值。例如,在Perl中: my $var; # some code here... $var = "default" unless $var; # $var typed twice 或在C中: char *var = NULL; // some code here... if (!var) // var typed

在几乎每种语言中,我都倾向于编写一些东西,如果未定义变量,则将其设置为默认值。每次我都会惊讶为什么语法不简单,例如为什么我必须写两次变量名才能将其设置为默认值。例如,在Perl中:

my $var;
# some code here...
$var = "default" unless $var; # $var typed twice 
或在C中:

char *var = NULL;
// some code here...
if (!var)             // var typed
    var = "default";  // twice
如果变量没有定义,为什么不使用一些语法糖来设置它呢?在perl中,它可能看起来像

$var ?= "default";

我只是好奇,有没有哪种语言真的有这样的语法糖

bash支持参数扩展和测试

e、 g.如果定义了
$1
且不为空,则使用
$1
;否则,设置为“文本”,输入:


我刚刚在perl中找到了这方面的语法优势:注意,其中一些原因是由于变量是如何在不同语言中实现的。在像C这样的编译语言中,如果变量存在,它就有一个值(它可能是未定义的/未初始化的/垃圾/陷阱诱导的/等等,但因为它引用内存中的特定位置,所以它有一个值)。在通过字典或其他类似于查找表的结构实现变量的语言中,实际上可能有一个当前没有值的变量。许多解释语言,如shell、perl、python等,更像这样。
output=${1-text}